tcl自动保存结果expect_【干货】我的天啊,这份接口自动化框架httprunner太全了吧!...

82f0bfc1b7a8d5bdf14a280247523503.gif

(一)--安装及简单使用

82f0bfc1b7a8d5bdf14a280247523503.gif 目录
  • 一、HttpRunner简介
  • 二、运行环境
  • 三、安装方式
  • 四、文件类型说明
  • 五、简单场景接口测试
    • 1、GET请求举例说明
    • 2、POST请求举例说明
很多毕业的学员都会来问有没有httprunner的相关资料,那今天就开始给大家把httprunner介绍一下吧,欢迎留言; 一、HttpRunner简介 HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。

二、运行环境

1、HttpRunner 是一个基于 Python 开发的测试框架,可以运行在 macOS、Linux、Windows 系统平台上。
2、Python 版本:HttpRunner 支持 Python 3.4 及以上的所有版本,并使用 Travis-CI 进行了持续集成测试,测试覆盖的版本包括 2.7/3.4/3.5/3.6/3.7。虽然 HttpRunner 暂时保留了对 Python 2.7 的兼容支持,但强烈建议使用 Python 3.4 及以上版本。
3、操作系统:推荐使用 macOS/Linux。

三、安装方式

HttpRunner 的稳定版本托管在 PyPI 上,可以使用 pip 进行安装。在dos命令提示符窗口中输入: 0d17848981d8e472c6ab20bafd2e1447.png

运行如下命令,若正常显示版本号,则说明 HttpRunner 安装成功:7c15b2da40f9e5c0006251dc3cedf69a.png

四、文件类型说明

在 HttpRunner 自动化测试项目中,主要存在如下几类文件:a3bec91d7d47747e829f828def6ea9c8.png

五、简单场景接口测试

HttpRunner 测试用例的基本结构:
1、每个 YAML/JSON 文件对应一个测试用例(testcase)
2、每个测试用例为一个list of dict结构,其中可能包含全局配置项(config)和若干个测试步骤(test)
3、config 为全局配置项,作用域为整个测试用例
4、test 对应单个测试步骤,作用域仅限于本身
1、GET请求举例说明
例:打开phpwind首页
host:47.107.78.XX
url:/phpwind/
请求方式:get
返回一个text/html页面
使用httprunner进行接口测试的步骤: 步骤1、 新建一个phpwind.yml文件,文件代码内容如下: f67c811f6300b10f6831021893483fb9.png

步骤2、 打开cmd进入到phpwind.yml文件所在的目录,执行以下命令:
hrun phpwind.yml525202e4d023d03ba3a50a61ff53127f.png

步骤3、查看报告(报告所在的位置,在步骤二命令运行完成后会有提示):5852df78223013bfb9d9c0fdcc0d7db1.png

2、POST请求举例说明
例:登陆phpwind
host:47.107.78.XX
url:phpwind/index.php?m=u&c=login&a=dologin
请求方式:POST
返回一个text/html页面
新建一个phpwind_login.yml文件,test部分代码内容如下(config部分请自行参照上面的案例进行填写): 96266d5e346c898db6a45a9fd52cd12a.png

后面的执行步骤与get请求的相同,就不再描述了。

82f0bfc1b7a8d5bdf14a280247523503.gif

(二)--变量空间(context)作用域

82f0bfc1b7a8d5bdf14a280247523503.gif

一、变量空间作用域简介

httprunner中变量空间作用域英文名为:context
在测试用例内部,HttpRunner 划分了两层变量空间作用域(context),分别为config和test;config:作为整个测试用例的全局配置项,作用域为整个测试用例;test:测试步骤的变量空间(context)会继承或覆盖 config 中定义的内容;
1、若某变量在 config 中定义了,在某 test 中没有定义,则该 test 会继承该变量
2、若某变量在 config 和某 test 中都定义了,则该 test 中使用自己定义的变量值
各个测试步骤(test)的变量空间相互独立,互不影响;
如需在多个测试步骤(test)中传递参数值,则需要使用 extract 关键字,并且只能从前往后传递;

二、config参数说明

下图是官方网站提供的图片: bf55c600514ac5fafd8884d3cb59d083.png
这些关键词是什么意思呢? fb3eb5e067204a9dc477188f574d0fab.png
关键词request中又包含多个关键词: c4c1a07a221132443774e8327c6fcc48.png

三、test参数说明

下图是官方网站提供的图片62cfbfc5d0931aad97f10bed5d1cebe3.png
关键词说明:75d1b655b67733a922e030875b806e9d.png

test中部分关键词使用介绍
extract关键词
支持多种提取方式:
响应结果为 JSON 结构,可采用.运算符的方式,例如headers.Content-Type、content.success;
响应结果为 text/html 结构,可采用正则表达式的方式,例如blog-motto">(.*) validate关键词
支持两种格式:
{"comparator_name": [check_item, expect_value]}
{"check": check_item, "comparator": comparator_name, "expect": expect_value} request关键词
request关键词中包括http请求中的详细内容:
headers:请求头部信息
method:请求方式
url:请求地址
host:请求主机地址
params:GET请求参数
data:表单形式的参数
json:json格式的参数 417e26654baf56e68eee7ac2580714c1.gif

(三)--断言

82f0bfc1b7a8d5bdf14a280247523503.gif 断言是拿实际结果和期望结果去比较;httprunner在validate(校验器)关键词中添加断言,有两种断言描述的方式; 一、断言描述方式 validate:
- comparator_name: [check_item, expect_value]
- {"check": check_item, "comparator": comparator_name, "expect": expect_value}
举例: 583acede2cee29891d7d175ba1ad0c32.png

二、httprunner支持的校验器

7b6796a2e1491d0770939259034896f0.png

三、断言中使用正则表达式

httprunner断言中支持正则表达式,也支持定义变量
举例说明:2b3e2160e2d4a5df4385d491dd350edc.png

四、查看断言的结果

在生成的测试报告中可以看到断言的结果;52e504e969484eba931d7ac8effdeb6e.png

以上即使我整理的关于接口自动化框架的学习内容,欢迎各位朋友在评论区交流学习。b7a51331434d7d4781f40714766609ae.png

往期精彩

点击阅读☞【测试大挑战】快来欺负它!这里有一份腾讯2020面试题

点击阅读☞十年测试老鸟告诉你——自动化测试选JAVA还是选Python

点击阅读☞【优秀学员故事】从神仙眷侣到IT双侠——这江湖携手而行。

点击阅读☞【开班!】T141——相信自己才能创造辉煌!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值