split into config/scanner/sheet_manager modules; hardware lists and column map moved to sheet_config.json (example provided); fix crash on submit (missing inp_tester), row=2 overwrite bug, GPU token matching, SSD decimal-vs-binary mismatch, net accounts returncode check, rescan page switch; tools/ gitignored with download README
3.8 KiB
LaptopTester
Windows-инструмент для QA-приёмки ноутбуков: автоматически определяет комплектацию, проводит через чеклист тестирования и записывает результаты в Google Sheets.
python tester.py
# Сканирует WMI + smartctl → заполняет бренд, модель, CPU, RAM, SSD, GPU
# → страница чеклиста: звук/экран/клавиатура/камера/... → одна кнопка отправляет в Google Sheets
Важно: При запуске программа выполняет
net accounts /maxpwage:unlimited(сброс срока действия пароля Windows). Требуются права администратора.
Установка
Требования: Windows 10/11, Python 3.9+
pip install -r requirements.txt
- Скопируйте
sheet_config.example.json→sheet_config.jsonи настройте под свою таблицу (имя листа, номера столбцов, списки железа). - Скачайте утилиты для тестирования из
tools/README.mdв папкуtools/. - Добавьте Google-ключи (на выбор):
service_key.json— ключ сервисного аккаунта (рекомендуется для командного использования)credentials.json— OAuth 2.0 client JSON (при первом запуске откроется браузер для входа)
Что умеет
- Автоопределение железа: бренд, модель, CPU, RAM — через WMI; объём диска и данные SMART (часы работы, циклы перезарядки, оценка состояния) — через
smartctl; GPU — через WMI. Всё сопоставляется со списками из конфига. - Страница чеклиста: звук, экран, тачскрин, клавиатура, камера, микрофон, тачпад, разъёмы, биометрия, батарейка CMOS, пароли BIOS/Windows, LTE, драйверы, цвета — каждый пункт выпадающим списком.
- Запись в Google Sheets: ищет строку по серийному номеру (обновляет найденную, добавляет новую), записывает все поля одним пакетным запросом.
Полезное
- Вторая батарея: включите группу «Вторая батарея» чтобы ввести циклы/ёмкость второй АКБ.
- Рескан: кнопка «🔄 Рескан» повторно запускает определение железа без перезапуска программы.
- Оценка SMART: поле SSD показывает
<оценка>/<часы>/<циклы>— A (<1000 ч), B (1000–15000 ч), C (>15000 ч).
Для разработчиков
Стек: Python 3, PyQt5, WMI, gspread, google-auth. Сборка: pyinstaller LaptopTester.spec
Карта столбцов и списки опций железа хранятся в sheet_config.json — адаптация под другую таблицу не требует правки кода.
Авторства
Необязательные сторонние утилиты (не включены — ссылки на скачивание в tools/README.md):
smartmontools, NirSoft BatteryInfoView, SoftwareOK IsMyLcdOK / IsMyTouchScreenOK, PassMark KeyboardTest, OCCT, CrystalDiskInfo.
Лицензия
MIT