嘘~ 正在从服务器偷取页面 . . .

pythonhttprunner测试框架


一、为什么选择httpruner接口自动化

httprunner对于测试新手进行接口自动化测试是非常简单易懂的
不需要太多代码基础,照着httprunner的规则照抄就行
可以对接口进行参数化,方式有csv文件和变量
输出的报告,详细也很好看
可以对联动的多接口进行测试
支持写方法使用,比如连接数据库查询落库校验或者时间等待

二、环境配置

  1. 首先cmd运行:

    pip install httprunner
    pip install requests
  2. 新建

    hrun --startproject 新项目名称
  3. 使用pycharm或者其他编译器打开刚刚创建的项目

三、目录讲解

api 接口存放的地方
name:接口名称
variables:变量信息,格式为key: value(冒号后面有一个空格)
request:请求信息
url:请求地址
method:请求方法
header:请求头
json:请求参数
testcase 用例目录
config:整个测试用例的全局配置
name:测试用例名称
variables:全局变量
teststeps:测试步骤,每一个测试步骤前面有‘-’
name:测试步骤名称
api:引用接口描述文件,相对路径从根目录开始
extract:从响应结果中提取参数,并保存到变量中,给其他测试步骤引用
validate:结果断言
testsuites 启动目录
config:全局配置项
name:测试用例集的名称
variables:环境变量
base_url:访问地址,一般写域名host
testcases:测试用例的集合
name:测试用例名称
parameters:参数化
testcase:引用测试用例文件,相对路径从根目录开始

  1. api文件yml写法

    name: 百度 #请求名称
    request: #接口
        url: baidu.com #请求地址
        method: POST #请求方式
        headers: #请求头
            Content-Type: application/json #类型
            User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,
                like Gecko) Chrome/80.0.3987.132 Safari/537.36 #请求环境
        json: # body格式
            number: $number #$变量名
            items: [
              {
                "ZBCODE": $ZBCODE,
                "ZBNAMEZH": $ZBNAMEZH,
                "ZBNAMEEN": $ZBNAMEEN,
                "ZSTATUS": $ZSTATUS
              }
            ]
  2. testcase文件yml写法

    config:
        name: "SAP下发商品品牌给中台ISAP11接口" # 名称
        variables: {} # 环境变量
    
    teststeps: # 测试步骤
    -
        name: 运营平台登录 # 步骤名称
        api: api/util/login.yml # api路径
        extract: # 提取接口参数
            - token: content.token # 提取的变量名:提取参数的结构
        validate:
            - eq: ["status_code", 200] # 校验code
            - eq: ["headers.Content-Type", "application/json;charset=UTF-8"]
            - eq: ["content.code", "0"]
            - eq: ["content.message", null]
            - eq: ["content.fullStackTrace", null]
            - eq: ["content.total", null]
            - eq: ["content.data", null]
            - eq: ["content.success", true]
    # 底部可以按上面格式添加多个api步骤
  3. testsuites文件yml写法

    config: # 配置
        name: "商品中心" #一个大报告名称
        base_url: "www.baidu.com" # 点击名称进入的地址
        variables:
            merchant_id: '1552939253053034' # 全局变量
    
    testcases: # 用例
    -
        name: SAP下发商品品牌ISAP11接口 # 用例名称
        testcase: testcases/back-product-service/external/brand.yml # 用例目录
        parameters: # 引入的变量
            number-ZBCODE-ZBNAMEZH: ${P(datas/back-product-service/external/ISAP11.csv)} # 名称-名称:对应的csv路径

四、运行

打开命令窗口执行:

hrun testsuites/filename.yml

测试报告

五、写在最后

hrun运行testsuites——拉取对应的testcase———拉取对应的api——验证返回——生成报告


文章作者: 孙尾苏
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 孙尾苏 !
评论
  目录