在首页点击左侧菜单栏新增项目,然后输入项目相关信息。我们接下来将会以httpbin里面的接口来进行测试,所以项目名称命名为:httpbin接口测试
一个项目会一般分为多个功能模块,我们可以创建不同模块,然后基于不同模块创建测试用例。在左侧菜单选择模块管理 然后点击新增模块,接下来输入模块信息。这里我们创建一个模块:HTTP_Methods
在接口测试过程中,我们有时需要设置base_url
来提高用例编写执行效率,我们可以在系统设置中的运行环境来创建。例如我们创建一个base_url操作过程如下图所示:
这里以下面接口为例创建用例:
http://www.httpbin.org/get #请求方式为GET
点击顶部快捷入口新增用例 然后在用例编辑窗口切换到request
来编辑用例,操作步骤如下:
如上图演示所示,用例名称为test_get_request
用例要归属到项目和具体的模块
如下图所示,点击用例测试的运行图标,然后选择运行环境即可执行用例,执行完成之后会自动生成测试报告,可以查看运行的结果。
以上我们就完成了单个接口的简单测试,接下来我们要进一步完善用例。
如果想自定义header信息,则可以在用例编辑界面点击add headers
,然后配置header信息。
在GET请求中,经常会有在URL中的参数,也就是Query String Parameters
比如在用例 test_get_request
增加一个参数 user=51zxw
在Post请求中,请求参数一般放在请求体Request body
中,HttpRunner支持form-data
和json
两种数据格式来传递参数。
这里我们的测试接口如下:请求类型为POST
http://httpbin.org/post
首先创建用例名称为test_post_formdata
用例编辑界面Type
选择data
,然后点击add data
按钮,在下面表单中输入参数名称和值即可。
传递Json
参数与form-data
方法类似,选择Type
时选Json
创建用例test_post_jsondata
操作流程如下:
HttpRunnerManager提供了extract
功能来从返回结果中提取我们需要的内容。例如前面用例test_get_request
执行之后返回结果如下:
{
"args": {
"user": "51zxw"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.18.4",
"User-Headers": "zxw2018"
},
"origin": "110.52.4.234",
"url": "http://httpbin.org/get?user=51zxw"
}
如果我们想提取user
值放在一个变量里面,那么可以使用extract
来提取。在用例编辑界面点击extract/validate
标签,然后点击add extract
按钮,进行如下配置即可:
其中Key
的值response_user
就是将返回值存储的变量名,content.args.user
表示从返回内容中提取args
属性中的user
值。下一步在断言设置中,我们可以验证是否获取正确。
结合前面提取返回值的内容,我们设置断言验证返回的user
值是否和我们预期的一样,首先点击add validate
然后可以进行如下设置:
上面的$response_user
表示引用我们之前设置的获取返回值的变量,Comparator
表示匹配规则,匹配规则有很多可以点击下拉菜单查看 Expected
值表示我们的期望值。
执行用例之后,我们可以看到在测试报告中,断言验证是通过的。
当然如果还想添加其他断言规则,就继续点击add validate
例如设置验证响应状态码为200
可以进行如下设置
注意:200
数值类型为int
有时候我们想把一些单个的接口按照指定顺序组合成为一个业务逻辑模块。比如用户模块,把用户注册、用户登录,用户退出几个用例封装成一个业务逻辑模块,从而形成接分层测试。
实践案例:
将之前的三个用例test_get_request
,test_post_formdata
、test_post_jsondata
封装为一个用例test_method_group
然后执行test_method_group
。
注意:新建组装的用例时, 只能选择单请求的用例进行拼接, 不可选择已组装过的用例。例如再新建一个用例,把
test_method_group
放进去是不行的。只能选择包含"不包含别的用例的用例"。
HttpRunnerManager接口自动化测试—环境搭建
接口Mock利器——Json Server
Locust接口性能测试
Python接口测试数据管理
Restful接口开发与测试—接口测试
Restful接口开发与测试—集成Swagger
Restful接口开发与测试—Django安装
Restful接口开发与测试—Rest简介
Python接口自动化——Requests基础功能
Python接口自动化——Requests
Jmeter+Ant+Jenkins接口自动化测试平台
Postman批量执行与集成Jenkins
Mac 环境Appium自动化测试环境搭建
众里寻他千百度—Appium Android 元素定位方式
Android自动化测试设备弹窗处理
Appium iOS 元素定位与操作
Ubuntu+Docker+STF环境搭建
关注公众号,更多干货秒得到