main.py 1.87 KB
# -*- coding: utf-8 -*-
# @Time    :  2021/2/4 15:48
# @Author  :  Young Lee
# @Email   :  young_lee2017@163.com

import shutil
import os
import sys
import re
import subprocess
import winreg


# 检查python版本
python_version = re.search('\d+.\d+', sys.version).group()
if float(python_version) < 3.7:
    print(f"The current version of Python is {python_version}, less than 3.7 !")
    print("This project is based on the development of Python 3.9. It is recommended to install Python 3.9.")
    sys.exit(0)


# 检查必备模块是否安装
pip_stdout = subprocess.Popen('pip list', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True).stdout.readlines()
installed_modules = []
for i in pip_stdout:
    i = str(i, encoding='utf-8')
    i = i[:i.find(' ')]
    installed_modules.append(i)
installed_modules = installed_modules[2:]

requirements = ['requests', 'selenium', 'pytest', 'allure-pytest']

need_install = [module for module in requirements if module not in installed_modules]

if need_install:
    print(f'Please install those modules: {need_install}.')
    sys.exit(0)

# 获取谷歌浏览器版本号
try:
    # 从注册表中获得版本号
    key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r'Software\Google\Chrome\BLBeacon')
    chrome_version, type = winreg.QueryValueEx(key, 'version')
except WindowsError as e:
    chrome_version = '未知'

# 生成环境配置文件
with open('report/environment.properties', 'w', encoding='utf-8') as f:
    f.write('Browser=Chrome\n')
    f.write(f'Browser.Version={chrome_version}\n')
    f.write('Stand=Production\n')
    f.write(f'Python.Version={python_version}')


if __name__ == '__main__':
    import pytest

    pytest.main(['-s', '-v', f'--alluredir=report/testing_report', '--clean-alluredir', './cases'])
    shutil.copy('report/environment.properties', 'report/testing_report/')
    os.system('allure serve report/testing_report')