pytest allure自动化框架,pytest和allure测试框架_超详细版
本文节选自霍格沃茨检测所开发的内部教材,末尾补充了进阶学习篇!
测试报告在项目中起着至关重要的作用。一份好的测试报告:
能反映测试人员的工作量;开发人员可以从测试报告中了解缺陷;测试经理可以从测试报告中看到测试人员的执行情况和测试用例的覆盖情况;项目负责人可以通过测试报告查看整个项目还剩多少问题,这个版本是否通过测试;因此,非常有必要创建一个美观清晰的检测报告,清晰地反映质量问题,并为相关人员提供对项目整体状况的了解。
Pytest结合Allure生成测试报告Allure框架是一个灵活、轻量、多语言的测试报告工具。它不仅能以简洁的Web报告形式显示测试内容,还能让参与开发过程的每个人从测试的日常执行中提取最大限度的有用信息。支持多种语言包括Java,Python,JavaScript,Ruby,Groovy,PHP,Net,Scala。
Mac安装可以使用brew安装allure,安装命令如下:
其他操作系统请参考brew install allure:
与https://docs.qameta.io/allure/#_installing_a_commandline py test组合需要安装allure-pytest插件:
安装Allure-pytest以查看Allure版本:
allure - version运行第一步:pytest执行测试时,指定参数- alluredir选项和保存结果数据的目录。代码如下:
该测试的结果数据保存在py-allure dir=tmp/my _ allure _ results tmp/my _ allure _ results中。
第二步:打开报表,需要启动allure service,在终端输入allure serve[path/To/allure _ results],代码如下:
allure serve path/to/allure _ results还可以使用allure generate生成HTML格式的测试结果报告,并使用allure open打开报告。
诱惑产生。/result/-o. /report/-clean上面的命令从。/result/目录添加到。/报表路径。-clean选项的目的是首先清除测试报告目录,然后生成新的测试报告,然后使用以下命令打开报告。
倾城时光-h127.0.0.1-p8883。/report/以上命令将启动一个Web服务来打开生成的测试报告。打开生成的测试报告。在默认浏览器中打开测试报告。该报告如下:
上述测试报告的第一页显示了本次测试的测试用例数量,以及成功案例、失败案例、跳过案例、测试环境、套件、特性BY STORIES等基本信息。用Jenkins连续设置后,趋势区还会显示历次测试的通过状态。
首页左栏还从不同维度展示了检测报告的其他信息。关键页面介绍:
行为页面,根据特性和故事显示测试用例的执行结果;Suites页面,Allure测试报告将每个测试脚本作为一个套件。在首页的套房区点击任意套房,进入套房页面;Graphs页面,显示测试结果的统计信息,如测试用例执行结果的状态、测试用例重要性级别的分布、测试用例执行时间的分布等。测试用例详细信息页面,点击Suites页面上的任意一个测试用例,Suites页面的右侧会显示这个测试用例的详细实现。在这个页面上,可以看到测试用例的每一步,以及每一步的执行结果,包括步骤中添加的链接、图片、网页片段或者视频,作为重要信息的补充。这里我们可以清楚地看到用例失败的原因。实际案例百度搜索功能自动测试在实际项目中,一旦用例出现错误,我们希望记录下当时应用的状态。记录这些状态的方式可以是日志、截图、视频等。并将这些记录在检测报告中,方便相关人员定位问题。我们将Pytest和Allure结合起来,生成一个测试报告来实现这个目标。
以百度的网页版本测试为例。百度首页呈现新闻、网页、贴吧、知道、音乐、图片、视频、地图等功能。我们以百度的网页搜索功能为例,使用Allure、pytest结合Selenium自动化测试框架完成了一个搜索功能测试。
为了模拟百度搜索功能场景,这里需要创建两个文件,数据文件和用例文件。首先,使用以下代码创建数据管理文件data/data.yml:
-诱惑
-派斯特
-unittest然后,创建的用例的文件名为test_baidudemo.py,代码如下:
#!/usr/bin/env python
# -*-编码:utf-8 -*-
进口诱惑
导入pytest
导入yaml
从selenium导入web驱动程序
导入时间
@ allure . test case( http://www . github . com )
@allure.feature(百度搜索)
@ py test . mark . parameterize( test _ data1 ,yaml.safe_load(\
open(data/data.yml ))
def测试步骤演示(测试数据1):
用allure.step(打开百度网页):
driver=webdriver。铬合金()
driver.get(http://www.baidu.com )
driver.maximize_window()
With allure.step(f 输入搜索词:{test_data1} ):
driver.find_element_by_id(kw )。send_keys(测试数据1)
时间.睡眠(2)
driver.find_element_by_id(su )。单击()
时间.睡眠(2)
With allure.step(保存图片):
driver.save_screenshot(。/result/b.png )
allure.attach.file(。/result/b.png ,\
attachment _ type=allure . attachment _ typePNG)
With allure.step(关闭浏览器):
driver.quit()的代码分析:
Allure.testcase用例ID,给定用例的链接,可以与用例的管理地址相关联。Allure.feature分为功能模块,方便管理和运行测试用例。pytest . mark . parameterize用于参数化测试用例。Allure.step用于添加一个测试步骤,该步骤会显示在测试报告中。执行:
pytest test _ Baidu demo . py-s-q-alluredir=。/结果/
诱惑服务。/结果/测试结果图:
上面的测试报告显示了运行时间、持续时间、用例数量、通过率、测试套件套件、环境等信息。
点击左栏底部的Package可以看到所有的测试用例以及测试数据,点击一个测试用例的右侧可以显示优先级、数据、测试步骤、每个步骤的名称、附加图片等信息。这里增加了一个测试用例的链接,可以关联到测试用例的管理链接,方便后期的统计覆盖。
此外,pytest和Allure还可以与Jenkins集成,实现自动化测试的持续集成。
转载请联系作者授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。