第二节 Pytest实现自动化及生成Allure报告

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模式自动化的。

你可能感兴趣的:(pytest,自动化)