httprunner接口自动化框架简单使用教程一

一、用来做什么

HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。

官方中文文档地址:https://cn.httprunner.org/

二、开始使用

   1、安装

pip install httprunner 安装
pip install pipenv  安装管理依赖包
2、项目文件结构
测试用例分层结构
cmd到创建文件下目录,执行
hrun --startproject demo 创建一个基本的测试用例分层结构

api文件:存放接口相关信息

testcase:用例存放

testsuites:用例集

reports:测试报告存放地方

debugtalk.py 基础数据定义,这边里可以定义数据,或者写方法来获取,在整个文件中都可以调用里面定义的数据

.env 也是定义数据的一个文件

gitignore  git软件要忽略的文件列表

测试用不分层结构,根据项目需要创建文件所有文件都在同一个目录,或者按自己的爱好创建,不推荐这种方式。
3、实践使用
假设有一个登录接口和查询接口,要预先登录后获取到token,然后才能进行查询,找到类似这两个接口的接口文档,或者抓包对应事件看看是否看接口相关信息

api格式:
name: demo api
base_url:base_url

variables:
    var1: value1
var2: value2
request:
url: /api/path/$var1
method: POST
headers:
Content-Type: "application/json"
json:
key: $var2
validate:
- eq: ["status_code", 200]
name 和 request 部分是必须的,request 中的描述形式与 requests.request 完全相同。存在变量引用的情况,可在 variables 中对参数进行定义,
默认情况下,har2case 生成用例时,若 HTTP 请求的响应内容为 JSON 格式,则会将第一层级中的所有key-value转换为 validator。

testcase测试用例:
- config:
    name: testcase description

   request: base_url: ${gain_base_url()}

    variables: {}

- test:
    name: /api/get-token
    request:
        headers:
            Content-Type: application/json
            User-Agent: python-requests/2.18.4
            app_version: 2.8.6
            device_sn: FwgRiO7CNA50DSU
            os_platform: ios
        json:
            sign: 9c0c7e51c91ae963c833a4ccbab8d683c4a90c98
        method: POST
        url: http://127.0.0.1:5000/api/get-token
    validate:
        - eq: [status_code, 200]
        - eq: [headers.Content-Type, application/json]
        - eq: [content.success, true]
        - eq: [content.token, baNLX1zhFYP11Seb]

 

config是接口配置部分,test是用例部分,validate是断言部分

加密:

hook 函数的定义放置在项目的 debugtalk.py 中,在 YAML/JSON 中调用 hook 函数仍然是采用 ${func($a, $b)} 的形式。

3、运行

cd 到对应目录下,hrun 对应case文件就行了

# 调试运行 hrun
$ pipenv run python main-debug.py hrun -h

# 调试运行 locusts
$ pipenv run python main-debug.py locusts -h

httprunner、hrun、ate 三个命令完全等价

原文地址:https://www.cnblogs.com/YouxiYouxi/p/12482033.html