Python3.8+Pytest+Allure单元测试框架搭建
TestNG报告太丑? 测试结果维度展现有限? ⽆法区分⽤例优先级? 不⽅便查看错误信息?
Allure测试报告框架帮助你轻松实现”⾼⼤上”报告展⽰。本⽂通过⽰例演⽰如何从0到1集成Allure测试框架。重点展⽰了如何将Allure集成到已有的⾃动化测试⼯程中、以及如何实现报表的优化展⽰。Allure⾮常强⼤,⽀持多种语⾔多种测试框架,⽆论是Java/Python还是
Junit/TestNG,其他语⾔或者框架实现的流程和本⽂⼀致,具体配置参照各语⾔框架规范
最近刚学习了如何⽤Python3.8+lenium+Pytest搭建单元测试框架,并使⽤allure测试报告⼯具⽣成炫酷的测试报告,因此记录⼀下,巩固知识的同时,也分享给⼤家,有⽤⾃取!
⼀、环境搭建
2.安装第三⽅包,pytest,PyYAML,lenium,allure-pytest插件。
heart and soul
⼆、编写代码
# -*- coding:utf-8 -*-
# @File:test_toss_demo1.py
from lenium import webdriver
import allure
import pytest
import yaml
中文翻译
from by import By
dimensionlessclass TestToss1():
@allure.feature("初始化⼯作")
parliamentdef tup(lf):
lf.driver = webdriver.Chrome()
with allure.step("打开toss登录地址"):
中秋节快乐英文怎么说
("/login")
with allure.step("最⼤化浏览器"):
lf.driver.maximize_window()
lf.driver.implicitly_wait(5)
@allure.feature("资源清理,关闭浏览器")
def teardown(lf):
lf.driver.quit()
@allure.feature("toss登录功能模块")
@stca("/board/")
@pytest.mark.parametrize(["urname", "password"], yaml.safe_load(open('./l'))) def test_toss_login_demo(lf, urname, password):
shakehandswith allure.step(f"输⼊账号:{urname},密码:{password}"):
lf.driver.find_element(By.ID, 'urname').nd_keys(urname)
lf.driver.find_element(By.ID, 'password').nd_keys(password)
with allure.step("点击登录按钮"):
lf.driver.find_element(By.ID, 'loginButton').click()
with allure.step("保存图⽚"):
lf.driver.save_screenshot("./result/login.png")
allure.attach.file("./result/login.png", attachment_type=allure.attachment_type.PNG) YAML 是专门⽤来写配置⽂件的语⾔,⾮常简洁和强⼤,远⽐ JSON 格式⽅便。如下:l是测试数据,YAML 是专门⽤来写配置⽂件的语⾔,⾮常简洁和强⼤,远⽐ JSON 格式⽅便。
约翰梅尔
-urname
-password
YAML基本语法规则:
·⼤⼩写敏感
·使⽤缩进表⽰层级关系
·缩进时不允许使⽤Tab键,只允许使⽤空格。
itunes store是什么意思·缩进的空格数⽬不重要,只要相同层级的元素左侧对齐即可
·#表⽰注释,从这个字符⼀直到⾏尾,都会被解析器忽略,这个和python的注释⼀样
三、使⽤pytest执⾏测试,⽤a llure⽣成测试报告
七年级上册英语单词
1.到对应的python⽂件所在⽬录执⾏命令:pytest -v -s test_toss_demo1.py --alluredir=./report/1结果如图:
运⾏完毕以后会默认⽣成allure-results⽂件夹,并在其中保存测试数据(json格式的测试数据)
测试报告解析
mammoth总览/图表页⾯ 中查看测试概况:包含测试⽤例数,测试通过率,测试Defect,不同优先级测试⽤例的情况,测试执⾏耗时,测试套件数,测试的场景分类。其中测试场景由⾃动化代码中@Epic的标识,优先级由@Severity标识。