pytest框架规则:
1.模块必须以test_开头或_test结尾。
2.测试类必须以Test开头。
3.测试用例必须以test_开头。
Unittest框架规则:
1.新建一个类继承unittest、TestCase。
2.导入unittest。
3.测试用例以test_开头。
pytest.ini是pytest默认的配置文件version,作用是可以改变pytest的默认规则。
-vs表示显示详细信息。
--alluredir ./log 生成allure报告在log文件夹。
--clean-alluredir 每次执行后清除之前的allure报告。
生成企业级allure报告
1.allure官网:https://github.com/allure-framework/allure2/releases下载完成后解压。
2.配置环境变量:将allure文件下的bin配置到path路径里。
3.在dos和pcharm中验证allure环境是否配置成功。allure --version。
4.安装allure。 pip install allure-pytest
5.生成allure报告。
第一步:生成临时的JSON报告。
addopts = -vs --alluredir ./log --clean-alluredir
第二步:生成HTML的allure报告。
# 根据log文件夹下的JSON文件生成HTML报告在repot文件下 os.system('allure generate ./log -o ./repot --clean')
定制allure报告:logo,项目名称,模块,用例,优先级,描述,错误截图,日志。
test_ecshop用例层代码:
import time
import allure
from selenium import webdriver
from login_page import LoginPage
# import unittest
class TestLogin:
def setup_class(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(3)
def tearDown(self) -> None:
time.sleep(1)
def test_01_login(self):
try:
lp = LoginPage(self.driver)
lp.login_ecshop('admin', '111111')
# 断言 1 =2
assert 1 == 2
except Exception as e:
# 报存错误截图
file_path = r"D:\Pythonpack1\UITest\error_image\login.png"
self.driver.save_screenshot(file_path)
# 把错误截图加入到allure报告
with open(file_path, mode='rb') as f:
allure.attach(f.read(), 'login.png', allure.attachment_type.PNG)
run,执行文件代码:
import os
import pytest
import time
if __name__ == '__main__':
pytest.main()
time.sleep(1)
# 根据log文件夹下的JSON文件生成HTML报告在repot文件下
os.system('allure generate ./log -o ./repot --clean')
pytest配置文件:
[pytest]
addopts = -vs --alluredir ./log --clean-alluredir
基础层和页面对象层及HTML代码可以复用 PO模式自动化的。