移动自动化appium(2)-Allure报告使用详解

更新时间:2023-06-17 05:14:44 阅读: 评论:0

移动⾃动化appium(2)-Allure报告使⽤详解
6 Allure报告
6.1 Allure介绍
Allure是⼀个独⽴的报告插件,⽣成美观易读的报告,⽐之前的html好看,⽬前⽀持的语⾔:Java、PHP、Ruby、Python、C#等
6.2 Allure安装
pip3 install allure-pytest
(注意:这⾥不要使⽤pytest-allure-adaptor)
有⼀个帮助⽂档可以参考:
⽣成Allure报告的命令:
pytest --alluredir report
执⾏完这条命令,ca运⾏完毕后,会在当前⽬录下⽣成⼀个report⽂件夹,⾥⾯有⼀个json⽂件,就是⽣成的报告
在pytest.ini中,之前的报告是这样⽣成的:
addopts = -s --html=report/report.html --reruns 1
如果想⽤allure,那么改成:
addopts = -s --alluredir report --reruns 1
直接在终端执⾏pytest就可以了
6.3 json报告转为html报告
上⾯的命令执⾏后,⽣成的是json⽂件,json⽂件不那么好看,需要将json转成html,这⾥要先安装⼀个插件,步骤:
1、下载allure压缩包,地址:
/qameta/generic/io/qameta/allure/allure/2.7.0/allure-2.7.0.zip
2、解压后,将bin⽬录配置到环境变量
护肤品推荐3、进⼊report的上⼀级⽬录,执⾏命令:allure generate report/ -o report/html --clean
执⾏上⾯的操作步骤后,在report⽂件夹下就多了⼀个html⽂件夹,⾥⾯的index.html⽂件就是html报告。
⽣成html的时候遇到这样的报错:
爆发的近义词Exception in thread "main" java.lang.UnsupportedClassVersionError: io/qameta/all
ure/CommandLine : Unsupported major.minor version 52.0
那么可能是你的jdk版本太低了,可以打开cmd,输⼊java -version,以及javac -version,看⼀下版本,如果低于1.8,换成1.8版本就好了。jdk1.8版本下载地址:
6.4 allure+pytest实战操作
6.4.1 step⽤法
@allure.step(“”):
⽤来描述⽤例步骤的,简单⼀点的⽤法,⽐如新建⼀个项⽬,框架如图:
第⼀种⽤法:
在”F:\python\allureDemo\scripts\test_demo.py”⽂件中,写⼊下列代码:
import allure
class TestLogin:
翠微亭@allure.step("测试登录成功的步骤")
def test_login_success(lf):
print("login success")
asrt 1
在终端输⼊pytest运⾏测试⽤例,然后从cmd进⼊到F:\python\allureDemo这个路径,输⼊allure generate report/ -o report/html --clean,⽣成测试报告
观察报告结果:
打开⽣成的报告,点击左侧的“包”或者“功能”,可以看到这样的页⾯,右侧test_login_success是我们的测试⽤例,圈绿⾊的部分是step的内容。
第⼆种⽤法:
allure的帮助⽂档中,给出的step的⽰例,test_steps_with_placeholders()这个测试⽤例:
import allure
@allure.step('Step with placeholders in the title, positional: "{0}", keyword: "{key}"')
def step_with_title_placeholders(arg1, key=None):
肝五项检查是什么pass
def test_steps_with_placeholders():
step_with_title_placeholders(1, key='something')
step_with_title_placeholders(2)
step_with_title_placeholders(3, 'anything')
运⾏结果:
第三种⽤法:
第三种⽤法是只写⼀个@allure.step,没有参数,这种情况会直接把⽅法名放到步骤显⽰的位置,例
如:  @allure.step
def test_login_fail1(lf):
print("login fail1")
asrt 0
运⾏结果:
科勒马桶维修还有⽐如:
@allure.step
def passing_step():
pass
def test_with_step_in_fixture_from_conftest(fixture_with_conftest_step):
  passing_step()
等等⽅式
6.4.2 attach()添加ca描述和截图
allure.attach()不是⼀个装饰器,需要写到test⽤例⾥⾯,⽐如下⾯这样:
def test_login_fail(lf):
allure.attach("输⼊正确的⽤户名:xxxx")
print("input urname")
allure.attach("", "输⼊错误的密码:xxx")
print("input password")
allure.attach("", "点击登录")
print("click login button")
asrt 0
藏红花补肾吗第⼆个attach⽅法有两个参数,第⼀个有⼀个,这样写虽然都不会报错,但是结果会不⼀样,如图:
第⼀个,只写了⼀个参数的,会像图第⼀个圈红的位置那样,必须点开这个才会看到操作步骤,第⼆个和第三个,直接就可以看到操作步骤,更直观。
attach还可以增加截图:
def test_login_success(lf):
allure.attach.file(r'D:\xx\xxx.jpg', '我是附件截图的名字',
attachment_type=allure.attachment_type.JPG)
print("login success")
asrt 1
风向是指
结果:
点击截图的名字,就可以看到截图。
attach.file()第三个参数,还可以是allure.attachment_type.PNG、allure.attachment_type.HTML、allure.attachment_type.TEXT等。
6.4.3 Descriptions
  description是显⽰在描述位置的内容,可以描述⼀下你这个测试⽤例想做什么。
第⼀种⽤法,长字符串:
@allure.description("""
Multiline test description.
That comes from the allure.description decorator. Nothing special about it.
""")
def test_description_from_decorator():
  asrt 42 == int(6 * 7)
结果:
第⼆种⽤法,html格式:
可以使⽤html格式
import allure
@allure.description_html("""
车用脚垫<h1>Test with some complicated html description</h1> <table >
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr align="center">
<td>William</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr align="center">
<td>Vasya</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>
""")
def test_html_description():
  asrt True
结果:

本文发布于:2023-06-17 05:14:44,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1042032.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:报告   截图   步骤   需要   描述
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图