1. 测试用例

1.1 了解测试用例

1)百度百科:什么是测试用例?

2)英文名:Test Case,简称TC

1.2 测试用例标题

# 用例
{1}_{2}_{3}_{4}_{5}
其中:
    1代表业务模块
    2代表接口抽象功能
    3代表正向还是反向
    4代表接口具体某一功能
    5代表用例的重要细节描述,可以没有也可以有多次描述
# 举例说明
用例标题1:设备管理_添加设备_正测_添加一台店计设备
用例标题2:设备管理_添加设备_反测_添加一台闸机设备_闸机编码已存在
tc_title

1.3 测试用例描述

前置条件:
  登录:是否需要登录,什么角色登录
  权限:账号是否有访问接口的权限
  关联:是否对其他接口有依赖(只关心直接依赖)
测试步骤:
  步骤:测试操作步骤
  期望:执行操作步骤后需要进行断言(针对本接口或其他关联接口)

# 注意:测试步骤中的步骤和期望可以多次出现
tc_desc

1.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         pass
11
12
13 class TestPersonDelete():
14
15     def test_正测_人员删除_特殊人员(self):
16         pass
17
18
19 class TestPersonEdit():
20
21     def test_正测_人员编辑_人员姓名(self):
22         pass
23
24
25 class TestPersonDetail():
26
27     def test_反测_人员详情_人员id不存在(self):
28         pass
29
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中自定义模板代码,快速输出固定代码块

4.1 pycharm如何自定义模板代码

4.2 编写测试用例的哪些步骤或环节有必要进行自定义模板代码

4.3 几个栗子

02-13 18:13