接口自动化(2)----如何编写接口自动化用例

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 安装第三方包

1. 先安装pytest库
    pip install pytest
2. 再安装allure-pytest库
    pip install allure-pytest
python包安装

2.2 安装allure html工具

Allure Framework是一款使用灵活的、支持多语言的测试报告工具。

第1步:下载工具:https://github.com/allure-framework/allure2/releases
第2步:添加环境变量(windows和linux下)
第3步:使用说明: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的常用标签介绍

项目地址: https://github.com/allure-framework/allure-python

文档地址: https://docs.qameta.io/allure/

# 测试用例标签,分组第一层
1)@allure.feature("一级标签")    
# 测试用例标签,分组第二层
2)@allure.story("二级标签") 
# 测试用例级别
3)@allure.severity("用例等级")
# 测试用例标题,默认使用函数名。
4)@allure.title("用例标题")
# 动态生成功能, 常用于数据驱动的用例函数内部. 此方法会覆盖@allure.title("用例标题")
5)@allure.dynamic.title("用例标题")
# 测试用例描述
6)@allure.description ("用例描述")
# 测试用例步骤
7)@allure.step("用例步骤")
# 在报告中呈现重要步骤的相关信息
8)@allure.attach()
常用标签

3.7 综合运用(二)

学习目标:在测试用例中该如何运用allure标签

# -*- coding: utf-8 -*-
# @Time    : 2019/9/23 11:15
# @Author  : chinablue
# @File    : person.py

import allure

@allure.feature("人员管理")
@allure.story("人员添加")
class TestPersonAdd():

    @allure.description('''
        前置条件:
            1.登录:平台管理员
            2.权限:有访问权限
            3.关联数据:
           
        测试步骤:
            1. 步骤:添加一个普通人员A
            2. 校验:可以查看到人员A的详情信息
            3. 校验:人员列表中可以查看到人员A
    ''')
    @allure.severity(allure.severity_level.NORMAL)
    def test_正测_人员添加_普通人员(self):
        
        with allure.step("步骤:添加一个普通人员A"):
            pass
        
        with allure.step("校验:可以查看到人员A的详情信息"):
            pass
        
        with allure.step("校验:人员列表中可以查看到人员A"):
            pass
代码示例

4. 高效编写测试用例

实现思路:在pycharm中自定义模板代码,快速输出固定代码块

4.1 pycharm如何自定义模板代码块

1)打开pycharm后依次点击:File--Settings--Editor--Live Templates

2)点击加号(绿色)--点击Live Template

3)定义模板代码块

# 输入信息的含义说明
Abbreviation: 模板代码块的名字
Description: 模块代码块的描述
Template text:模板代码块的具体信息
含义说明

4.2 举例说明

学习目标:通过自定义模板代码块,快速生成测试用例描述的内容模板

1. Abbreviation中输入内容:tcdesc
2. Description中输入内容:测试用例描述
3. Template text中输入内容如下:
@allure.description('''
    前置条件:
        1.登录:平台管理员
        2.权限:有访问权限
        3.关联数据:
       
    测试步骤:
        1. 步骤:
        2. 校验:
''')
配置信息
posted @ 2019-09-23 12:45  后来者2012  阅读(1188)  评论(0编辑  收藏  举报