1. 测试用例
1.1 了解测试用例
1)百度百科:什么是测试用例?
2)英文名:Test Case,简称TC
1.2 测试用例标题
# 用例
{1}_{2}_{3}_{4}_{5}
其中:
1代表业务模块
2代表接口抽象功能
3代表正向还是反向
4代表接口具体某一功能
5代表用例的重要细节描述,可以没有也可以有多次描述
# 举例说明
用例标题1:设备管理_添加设备_正测_添加一台店计设备
用例标题2:设备管理_添加设备_反测_添加一台闸机设备_闸机编码已存在
知识兔tc_title1.3 测试用例描述
前置条件:
登录:是否需要登录,什么角色登录
权限:账号是否有访问接口的权限
关联:是否对其他接口有依赖(只关心直接依赖)
测试步骤:
步骤:测试操作步骤
期望:执行操作步骤后需要进行断言(针对本接口或其他关联接口)
# 注意:测试步骤中的步骤和期望可以多次出现
知识兔tc_desc1.4 测试用例等级
2. python3下pytest+allure的安装使用
2.1 安装第三方包
# 先安装pytest库
pip install pytest
# 再安装allure-pytest库
pip install allure-pytest
知识兔2.2 安装allure html工具
Allure Framework是一款使用灵活的、支持多语言的测试报告工具。
第一步:下载工具:https://github.com/allure-framework/allure2/releases
第二步:添加环境变量
第三步:使用说明:allure generate [xml文件路径] -o [html文件路径] --clean
2.3 pytest的基本使用
1) 查找以test开头或结尾的函数执行
2) pytest执行用例命令:
pytest.main(['-s', '-v', 'file_path', "--alluredir=./report/xml"])
知识兔2.4 allure的基本使用
1 # -*- coding: utf-8 -*-
2 # @Time : 2019/9/16 16:38
3 # @Author : chinablue
4
5 import allure
6
7 @allure.feature("一级模块")
8 @allure.story("二级模块")
9 @allure.description('''
10 前置条件:
11 1.登录:平台管理员
12 2.权限:有访问权限
13 3.关联数据:xxx
14 测试步骤:
15 1. 步骤:yyy
16 2. 校验:zzz
17 ''')
18 def test():
19 with allure.step("步骤:yyy"):
20 pass
21 with allure.step("校验:zzz"):
22 pass
23
24 import pytest
25 case_flie = r"C:\Users\reconova\Desktop\0909\new\case\module_rank\tmp.py"
26 pytest.main(['-s', '-v', '{}'.format(case_flie), "--alluredir=./output/report/xml"])
27
28 import os
29 cmd = "allure generate ./output/report/xml -o ./output/report/html --clean"
30 os.popen(cmd)
知识兔代码示例3. 编写接口测试用例的规则说明
实现思路:使用python版的allure库(依赖pytest库)来编写测试用例,并以html的形式呈现用例。
3.1 概念解释
1)测试用例:一个以test开头的函数。
2)测试类:一个以Test开头的类,类中可以包含多个测试用例。
3)测试模块:一个.py文件,文件中可以包含多个测试类。
4)测试集:一个测试集可以包含多个测试模块。
3.2 新建测试模块
${project_root}/case/module_rank/person.py
知识兔3.3 新建测试类
1)类名采用大驼峰,命名规则说明如下:
命名格式:Test{1}{2}
# 1代表模块名称。如:Person,Device等
# 2代表接口抽象功能。如:Add,Delete,Edit,Detail,List等
知识兔2)举个栗子
# TestPersonAdd 代表人员管理模块的新增接口
# TestDeviceEdit 代表设备管理模块的编辑接口
知识兔3.4 新建测试方法
1)命名规则说明如下:
命名格式:test_{1}_{2}_(3)
# 1代表正测还是反测
# 2代表接口具体功能
# 3代表用例重要细节描述,此部位可以没有也可以描述多次
知识兔2)举个栗子
# test_反测_添加设备_抓拍相机_设备编码已使用# test_正测_添加人员_普通人员# test_正测_添加人员_普通人员_只填必填
3.5 综合运用
1 # -*- coding: utf-8 -*- 2 # @Time : 2019/9/23 11:15 3 # @Author : chinablue 4 # @File : person.py 5 6 7 class TestPersonAdd(): 8 9 def test_正测_人员添加_普通人员(self):10 pass11 12 13 class TestPersonDelete():14 15 def test_正测_人员删除_特殊人员(self):16 pass17 18 19 class TestPersonEdit():20 21 def test_正测_人员编辑_人员姓名(self):22 pass23 24 25 class TestPersonDetail():26 27 def test_反测_人员详情_人员id不存在(self):28 pass29 30 31 class TestPersonList():32 33 def test_正测_人员列表_通过人员性别筛选_男(self):34 pass
3.6 allure的常用标签介绍
# 测试用例标签,分组第一层1)@allure.feature("一级标签") # 测试用例标签,分组第二层2)@allure.story("二级标签") # 测试用例级别3)@allure.severity(allure.severity_level.BLOCKER)# 测试用例标题,默认使用函数名。4)@allure.title("用例标题")# 测试用例描述5)@allure.description ("用例描述")# 测试用例步骤6)@allure.step("用例步骤")# 在报告中呈现重要步骤的相关信息7)@allure.attach()
4. 高效编写测试用例
实现思路:在pycharm中自定义模板代码,快速输出固定代码块