认识一下~接口开源框架--httprunner(一)

接口开源框架--httprunner

简介

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

安装

安装环境

HttpRunner 是一个基于 Python 开发的测试框架,可以运行在 macOS、Linux、Windows 系统平台上。

安装方法

pip3 install httprunner==2.5.7

安装完后利用 hrun -V 查看版本,出来版本则代表安装成功

 

建议使用2.5.7稳定版本,3版本文档未更新,使用起来比较费力~

使用准备

准备一份接口操作文档,如果没有操作文档,则可以通过 Charles Proxy 或者 Fiddler  这类网络抓包工具进行抓包分析来了解接口的请求和响应细节。

httprunner的主要文件格式

YAML/JSON(必须):测试用例文件,存储接口测试相关信息

debugtalk.py(可选):存储项目中逻辑运算辅助函数 该文件存在时,将作为项目根目录定位标记,其所在目录即被视 为项目工程根目录 该文件不存在时,运行测试的所在路径(CWD)将被视为项目工 程根目录

.env(可选):存储项目环境变量,通常用于存储项目敏感信息

.csv(可选):项目数据文件,用于进行数据驱动 reports:默认生成测试报告的存储文件夹

测试用例结构

• 每个 YAML/JSON 文件对应一个测试用例(testcase)

• 每个测试用例为一个list of dict结构,其中可能包含全局配置项( config)和若干个测试步骤(test)

• config 为全局配置项,作用域为整个测试用例

• test 对应单个测试步骤,作用域仅限于本身

用例格式

通常一个脚本文件里面有如下模块:

- config

- test

- test

即:全局配置、用例、用例

config模块里面定义的是整个文本测试集的变量,即全局变量、test模块里面定义的是具体接口请求,对应单个测试步骤(teststep),测试用例存在顺序关系,运行时将从前往后依次运行各个测试步骤

举例:

以微信公众号获取token接口为例,新建一个yaml文件,命名为get_token.yaml

 

config模块

name 本用例集名称

request 请求全局变量,包括base_url(公共host)、headers等

base_url 全局公共host,也可以不定义,用例中写全url即可

以上全局配置,除了name,其他都是非必要的,根据需要添加。

parameters 全局参数,用于实现数据化驱动,作用域为整 个用例。

variables 定义的全局变量,作用域为整个用例

output 整个用例输出的参数列表,可输出的参数包括公共的 variable 和 extract 的参数; 在 log-level 为 debug 模 式下,会在 terminal 中打印出参数内容

test模块

name 本条测试用例的名字

request HTTP 请求的详细内容

variables 测试步骤中定义的变量,作用域为当前测试步骤

extract 从当前 HTTP 请求的响应结果中提取参数,并保存到参数变量中(例如 token),后续测试用例可通过$token的形式进行引用

validate 测试用例中定义的结果校验项,作用域为当前测试用例,用于实现对当前测 试用例运行结果的校验

setup_hooks 在 HTTP 请求发送前执行 hook 函数,主要用于准备工作

teardown_hooks NO list 在 HTTP 请求发送后执行 hook 函数,主要用于测试后的清理工

teardown_hooks 在 HTTP 请求发送后执行 hook 函数,主要用于测试后的清理工作

request关键词

headers:请求头部信息

method: 请求方式

url:请求地址

host:请求主机地址

params:GET请求参数

data:表单形式的参数

json:json格式的参数

运行方式

基于之前生成的json、yaml文件,通过命令行终端cd到用例所在目录,执行hrun 用例名称即可。

运行yaml文件测试用例

 

运行后可查看测试报告数据

 可查看详细请求和返回信息

注意: test的执行顺序是自上而下执行,重点在于理解HttpRunner的分层结构以及包含关系

原文地址:https://www.cnblogs.com/HMeier/p/13111742.html