zoukankan      html  css  js  c++  java
  • 接口自动化(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
    econovaDesktop909
    ewcasemodule_rank	mp.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. 校验:
    ''')
    配置信息
  • 相关阅读:
    java中的类修饰符、成员变量修饰符、方法修饰符。
    java集合框架
    计算字符串最后一个单词的长度,单词以空格隔开。 java算法
    写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。java算法
    在使用 interface 声明一个接口时,只可以使用那个修饰符修饰该接口?
    初始化数组的三种方式
    Evolved Policy Gradients
    Improving Generalization in Meta Reinforcement Learning using Learned Objectives
    RL^2: Fast Reinforcement Learning via Slow Reinforcement Learning
    How to Construct Deep Recurrent Neural Networks
  • 原文地址:https://www.cnblogs.com/reconova-56/p/11567554.html
Copyright © 2011-2022 走看看