目录
前言:
pytest 中 yield 和 return 的区别和相同点
共同点
区别
usefixtures 与传 fixture 区别
Pytest 常用的插件
一键安装多个模块
前言:
在软件测试中,生成清晰、易读的测试报告是非常重要的。pytest-allure是一个流行的测试框架和报告生成工具,它可以帮助测试团队生成美观、详细的测试报告。
- 安装模块:pip install allure-pytest
# 第一步:生成xml数据
pytest --alluredir=./report/xml testcase.py
# 第二步:生成html文件
allure generate --clean ./report/xml -o ./result/html
将截图加入到报告里
- allure.attach(f, '图片名', allure.attachment_type.JPG)
# -*- coding: utf-8 -*-
from selenium import webdriver
import allure
browser=webdriver.Chrome()
browser.get("https://www.baidu.com")
try:
browser.find_element_by_id("zhiyi").send_keys('test123456') # 输入密码,
except Exception as e:
file_name = './test.jpg'
browser.save_screenshot(file_name) # 截图函数
'''allure添加截图附件'''
with open(file_name, mode='rb') as file:
# 读取文件,将读取的结果作为参数传给allure
f = file.read()
# 把图片添加到allure操作步骤里
allure.attach(f, 'login', allure.attachment_type.JPG)
raise e
pytest 中 yield 和 return 的区别和相同点
共同点
- return 和 yield 都可以返回值
区别
- yield 返回值后,后面的代码还会继续运行
- return 返回值后,后面的代码不会继续运行
# -*- coding: utf-8 -*-
import pytest
@pytest.fixture()
def openbrower():
print("打开浏览器")
yield "返回浏览器"
print("关闭浏览器")
def test01(openbrower):
print(openbrower)
运行结果
- 证明 yield 后面的代码仍执行了
testcase.py::test01 打开浏览器
# 返回值
返回浏览器
PASSED关闭浏览器
usefixtures 与传 fixture 区别
-
fixture 有返回值,那么 usefixture 就无法获取到返回值,这个是装饰器 usefixture 与用例直接传 fixture 参数的区别。
-
当 fixture 需要用到 return 出来的参数时,只能讲参数名称直接当参数传入,不需要用到 return 出来的参数时,两种方式都可以
-
@pytest.mark.usefixtures("装饰器名")
Pytest 常用的插件
-
pytest-selenium 集成 selenium
-
pip install allure-pytest 生成漂亮的 allure 测试报告
-
pip install pytest-sugar 优化运行效果
-
pip install pytest-rerunfailures 执行用例失败后重新运行
-
pip install pytest-xdist 多线程并行与分布式执行
-
pip install pytest-assume 多条断言前面报错后面依然执行
-
pip install pytest-cover 测试覆盖率
一键安装多个模块
- 创建 requirement.txt 文件
selenium==3.0
requests
- pip install -r requirement.txt
作为一位过来人也是希望大家少走一些弯路
在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。
(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)
相信能使你更好的进步!
点击下方小卡片