HttpRunnerManager接口自动化测试—入门使用

2021-08-09 11:28:05 浏览数 (1)

创建项目

在首页点击左侧菜单栏新增项目,然后输入项目相关信息。我们接下来将会以httpbin里面的接口来进行测试,所以项目名称命名为:httpbin接口测试

创建模块

一个项目会一般分为多个功能模块,我们可以创建不同模块,然后基于不同模块创建测试用例。在左侧菜单选择模块管理 然后点击新增模块,接下来输入模块信息。这里我们创建一个模块:HTTP_Methods

创建环境

在接口测试过程中,我们有时需要设置base_url来提高用例编写执行效率,我们可以在系统设置中的运行环境来创建。例如我们创建一个base_url操作过程如下图所示:

创建用例

这里以下面接口为例创建用例:

代码语言:javascript复制
http://www.httpbin.org/get #请求方式为GET

点击顶部快捷入口新增用例 然后在用例编辑窗口切换到request来编辑用例,操作步骤如下:

如上图演示所示,用例名称为test_get_request 用例要归属到项目和具体的模块

运行测试

如下图所示,点击用例测试的运行图标,然后选择运行环境即可执行用例,执行完成之后会自动生成测试报告,可以查看运行的结果。

以上我们就完成了单个接口的简单测试,接下来我们要进一步完善用例。

header设置

如果想自定义header信息,则可以在用例编辑界面点击add headers,然后配置header信息。

请求参数

URL参数

在GET请求中,经常会有在URL中的参数,也就是Query String Parameters 比如在用例 test_get_request 增加一个参数 user=51zxw

body参数

在Post请求中,请求参数一般放在请求体Request body中,HttpRunner支持form-datajson两种数据格式来传递参数。

这里我们的测试接口如下:请求类型为POST

代码语言:javascript复制
http://httpbin.org/post
form-data

首先创建用例名称为test_post_formdata 用例编辑界面Type选择data,然后点击add data按钮,在下面表单中输入参数名称和值即可。

json

传递Json参数与form-data方法类似,选择Type时选Json 创建用例test_post_jsondata操作流程如下:

获取返回结果

HttpRunnerManager提供了extract功能来从返回结果中提取我们需要的内容。例如前面用例test_get_request执行之后返回结果如下:

代码语言:javascript复制
{
  "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_formdatatest_post_jsondata封装为一个用例test_method_group 然后执行test_method_group

注意:新建组装的用例时, 只能选择单请求的用例进行拼接, 不可选择已组装过的用例。例如再新建一个用例,把test_method_group放进去是不行的。只能选择包含"不包含别的用例的用例"。

0 人点赞