一、安装allure命令行工具
1上传allure-commandline-2.13.1.zip上传到服务器的/opt目录下
2解压
unzip allure-commandline-2.13.1.zip
3配置环境变量
将解压后allure下bin目录的路径/opt/
allure-commandline-2.13.1/bin
配置进环境变量
vi /etc/profile
# 在PATH后追加以下内容,保存
:$PATH:/opt/allure-commandline-2.13.1/bin
# 使环境变量生效
source /etc/profile
4验证
在命令行输入allure --version,能出现版本说明allure命令行已经安装成功了
二、安装allure_pytest
1、allure_pytest是对allure需要的json文件的生成做的一个插件
pip install -y allure_pytest
2、基本用法
1)allure.epic
定义
2)allure.feature(常用)
大的功能模块,比如登录功能
3)allure.story(常用)
4)allure.title
用例的标题
5)allure.severity(常用)
用例的优先级,主要分为以下五个:
blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
critical级别:临界缺陷(功能点缺失)
normal级别:普通缺陷(数值计算错误)
minor级别:次要缺陷(界面错误与UI需求不符)
trivial级别:轻微缺陷(必输项无提示,或者提示不规范)
比如我们可以给正常登录用例给个blocker的级别
6)allure.tag
给测试方法打标签,标签可以有多个,比如给正常登录打2个标签:最重要,回归测试
7)allure.testcase
allure报告关联测试用例的地址
8)allure.issue
allure报告关联jira的bug,allure.issue有两个参数,第一个是bug的地址,第二个是bug的名字
9)allure.description
测试用例的描述,当然你也可以使用@allure.description_html,或者在测试方法中使用""" """ 注释
10)allure.step(常用)
定义的测试步骤
11)allure.attch(常用)
添加附件,可以是文本或者图片,一般用来添加失败截图
12)allure.link
定义链接,在测试报告中展示
报告预览
三、allure serve allure_reports #allure_reports是存放json文件的目录
如果你访问不到,记得检查下防火墙是否关闭,没有就把它关了
#查看防火墙状态
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld
然后访问浏览器,http://虚拟机ip:端口
四、生成报告
allure生成测试报告要求对应的报告目录必须是空目录,实际场景中上次运行已经生成了报告,下次运行后又要再生成,可以利用--clean先清空目录,然后生成测试报告
allure generate allure_reports -o allure_reports/html --clean #allure_reports为存放json文件的目录,allure_reports下面的html目录为存放html报告的目录,打开html也可直接预览
#完整代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Auth : xxx
# @Time : 2020/09/29 17:24
import pytest
import allure
@allure.feature("登录功能")
class Test_alls():
@allure.story("正常登录")
@allure.severity("blocker")
@allure.tag("最重要","回归测试")
@allure.description("用例描述:使用正确的手机号和密码登录")
@allure.title("登录功能:正常登录")
@allure.step(title="allure通过注解方式完成内容的展示,setp表示测试步骤1...")
def test_setup(self):
"""
用例描述:使用正确的手机号和密码登录
"""
print("我就是打酱油的setup")
@allure.step(title="run就是一个正常的方法.")
def test_run(self):
allure.attach("自定义描述1", "描述内容,自定义")
print("我要运行")
assert True
def test_skip(self):
print("我要跳过")
@allure.severity(allure.severity_level.BLOCKER) # 严重级别
@allure.testcase("http://www.baidu.com/", "测试用例的地址")
@allure.issue("http://music.migu.cn/v3/music/player/audio", "点击可跳转到bug地址")
def test_error(self):
with allure.attach("自定义描述1", "我需要让他进行错误"):
print("我错误了")
assert False