$ wget https://github.com/allure-framework/allure2/releases/download/2.17.3/allure-2.17.3.tgz
$ vim ~/.bash_profile
#allure变量
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
export PATH=/Users/bytedance/Downloads/allure-2.17.3/bin:$PATH
export
$ source ~/.bash_profile
$ allure --version
2.17.3
获取tar.gz包,解压,配置变量,版本查看
allure配置文件详解
bin | 执行文件 | |
---|---|---|
config | 主配置文件 | |
lib | jar包 | |
Plugins | 插件 | |
1、进入到allure目录,切换config目录,进入allure.yml,添加开启custom-logo-plugin插件
plugins:
- junit-xml-plugin
- xunit-xml-plugin
- trx-plugin
- behaviors-plugin
- packages-plugin
- screen-diff-plugin
- xctest-plugin
- jira-plugin
- xray-plugin
- custom-logo-plugin #添加内容
2、切换/plugins/custom-logo-plugin/static/下,修改配置文件
$ tree
.
├── custom-logo.svg #默认log
├── styles.css #allure读取log文件
└── zjtd.png #要指定的log
/* .side-nav__brand {
background: url('custom-logo.svg') no-repeat left center !important;
margin-left: 10px;
} */
.side-nav__brand {
background: url('zjtd.webp') no-repeat left center !important;
margin-left: 10px;
height: 90px;
background-size: contain !important;
}
.side-nav__brand-text{
display: none;
}
功能区的定制都是通过装饰器来实现
左边区域-功能区 | ||
---|---|---|
@allure.epic(“项目名称”) | 项目名称定制 | |
@allure.feature(“项目模块名称”) | 项目模块名称定制 | |
@allure.story(“测试用例名称”) | 项目用例名称定制 | |
@allure.title(“测试用例标题”) | 项目用例的标题定制—1 | |
allure.dynamic.title(“用例标题”) | 项目用例的标题定制—2 | |
右边区域-功能区 | ||
@allure.severity(allure.severity_level.严重级别) | 项目测试用例优先级制定 | |
allure.dynamic.description(“描述内容”) | 项目用例的描述信息 | |
@allure.link(“www.baidu.com”) # 接口地址 @allure.testcase(“www.baidu.com”) # 用例地址 @allure.issue(“www.baidu.com”) # BUG地址 |
项目用例的链接信息 | |
项目名称定制:
@allure.epic("项目名称")
项目模块名称定制:
@allure.feature("项目模块名称")
项目用例名称定制:
@allure.story("测试用例名称")
项目用例的标题定制:
@allure.title("测试用例标题")
另外一种方式:
allure.dynamic.title("用例标题")
优先级制定:
@allure.severity(allure.severity_level.严重级别)
级别:
BLOCKER = 'blocker' #知名
CRITICAL = 'critical' #严重
NORMAL = 'normal' #一般
MINOR = 'minor' #提示
TRIVIAL = 'trivial' #轻微
项目用例的描述信息:
allure.dynamic.description("描述内容")
项目用例的链接信息:
@allure.link("www.baidu.com") # 接口地址
@allure.testcase("www.baidu.com") # 用例地址
@allure.issue("www.baidu.com") # BUG地址
项目用例的测试步骤:
#测试步骤
for a in range(1, 6):
with allure.step("执行第" + str(a) + "个步骤"):
pass
项目用例的错误截图&文本信息:
# 附件
with open(r"/Users/bytedance/Downloads/allure-2.17.3/plugins/custom-logo-plugin/static/zjtd.png",
mode="rb") as f:
content = f.read()
allure.attach(body=content, name="错误截图", attachment_type=allure.attachment_type.PNG)
print("case----3---删除用户")
# 文本
allure.attach(body="接口地址:j8.com", name="接口地址", attachment_type=allure.attachment_type.TEXT)
$ allure open ./report_2022_04_02_11_18_35--clean
Starting web server...
2022-04-02 11:34:31.748:INFO::main: Logging initialized @894ms to org.eclipse.jetty.util.log.StdErrLog
Server started at <http://192.168.2.104:56469/>. Press <Ctrl+C> to exit
@pytest.mark.parametrize("args_name", ["张三", "李四", "王武"])
def test_wx_parmas_01(self, args_name):
print("参数化:")
@pytest.mark.parametrize("args_name,args_age", [["张三", "18"], ["李四", "18"], ["王武", "18"]])
def test_wx_parmas_02(self, args_name, args_age):
print("参数化:", args_name, args_age)
yaml是一种数据格式,分为两种写法:
name: 张三
- name01: 张三
- name02: 李四
- name03: 王五
下载pyyaml模块,在项目目录写一个数据驱动读取yaml文件
$ pip3 install pyyaml
新建一个公共读取的包commns新建读取yaml的工具包yaml_util.py
# 读取yaml文件
import yaml
def read_yaml(yaml_path):
with open(yaml_path, mode='r', encoding='utf-8') as f:
value = yaml.load(f, Loader=yaml.FullLoader)
return value
通过parametrize装饰器来读取yaml方法
@pytest.mark.parametrize("args_name", read_yaml(".//test_case_all/test_wx/get_token.yaml"))
def test_wx_parmas_03(self, args_name):
print("参数化:")
.//test_case_all/test_wx/get_token.yaml #数据驱动读取的文件