目录
前言:
一、安装HttpRunner
二、编写测试用例
三、运行测试用例
四、实现接口关联测试
五、总结
前言:
在接口自动化测试中,一个常见的场景就是需要对多个接口进行关联测试,例如登录后获取token,再利用token进行其他接口的访问等。这时候我们就需要使用HttpRunner在测试过程中实现接口之间的关联。
HttpRunner是一款基于Python的开源接口自动化测试框架,它支持对接口进行参数化、数据驱动、关联等操作,非常适用于接口测试。在本篇文章中,我们将介绍如何使用HttpRunner来实现接口的关联测试。
一、安装HttpRunner
首先,我们需要安装HttpRunner。可以通过pip来进行安装:
pip install httprunner
安装成功后,可以通过以下命令来验证是否安装成功:
hrun -V
如果出现版本号,则表示安装成功。
二、编写测试用例
在进行接口关联测试前,我们需要编写测试用例。这里以登录接口和获取用户信息接口为例,编写如下测试用例:
config:name: HttpRunner Demobase_url: http://localhost:8080testcases:
- name: user loginrequest:url: /loginmethod: POSTheaders:Content-Type: application/jsonjson:username: testuserpassword: testpassvalidate:- eq: [status_code, 200]- in: [headers.Content-Type, application/json]- json_eq: [body, { "code": 0, "msg": "success", "data": {"token": "testtoken"} }]- name: get user inforequest:url: /userinfomethod: GETheaders:Authorization: $tokenvalidate:- eq: [status_code, 200]- in: [headers.Content-Type, application/json]- json_eq: [body, { "code": 0, "msg": "success", "data": { "username": "testuser", "age": 20 } }]
在以上测试用例中,我们首先发送登录请求,获取一个token。然后在下一步请求中,将token作为请求头发送,获取用户信息。注意到在第二个请求中,我们使用了$token这个变量,它的值就是上一个请求中返回的数据。
三、运行测试用例
完成测试用例编写后,我们可以使用HttpRunner来运行测试用例。可以通过以下命令来执行测试:
hrun tests/login.yaml
其中,login.yaml为我们编写的测试用例文件名。
如果测试用例执行成功,则会输出类似以下的信息:
------------------------ test result ------------------------
tests/login.yaml
✓ user login
✓ get user infotime: 0.078s, status: PASS
在此输出信息中,我们可以看到两个测试用例都执行成功了。
四、实现接口关联测试
现在,我们来实现接口之间的关联测试。在HttpRunner中,我们可以通过提取前一个请求的返回结果,并在后一个请求中使用。具体实现方法是通过extract和variables来实现。
首先,我们需要在登录请求中提取token:
- name: user loginrequest:url: /loginmethod: POSTheaders:Content-Type: application/jsonjson:username: testuserpassword: testpassextract:- token: content.data.tokenvalidate:- eq: [status_code, 200]- in: [headers.Content-Type, application/json]- json_eq: [body, { "code": 0, "msg": "success", "data": {"token": "testtoken"} }]
在以上测试用例中,我们新增了extract字段,并指定了一个变量token,它的值为content.data.token。这里的content就是响应结果的json,可以通过content来获取响应结果中的各个字段。这里我们提取了响应结果中的token字段,并将其保存在了变量token中。
在获取用户信息请求中,我们可以使用变量$token来获取之前提取的token值:
- name: get user inforequest:url: /userinfomethod: GETheaders:Authorization: $tokenvalidate:- eq: [status_code, 200]- in: [headers.Content-Type, application/json]- json_eq: [body, { "code": 0, "msg": "success", "data": { "username": "testuser", "age": 20 } }]
在以上测试用例中,我们引用了变量$token,它的值就是之前提取的token值。这样,我们就成功实现了接口之间的关联,即通过提取前一个请求的返回结果,并在后一个请求中使用,来完成接口关联测试。
五、总结
在本文中,我们介绍了如何使用HttpRunner实现接口关联测试。通过提取前一个请求的返回结果,并在后一个请求中使用,我们可以轻松实现接口之间的关联。这是HttpRunner非常强大的一项功能,也是接口测试中不可或缺的一环。
记住,接口测试不仅是单独接口的测试,更是对接口之间关联以及接口与业务逻辑之间的测试。只有熟练掌握这些技巧,我们才能为我们的软件产品提供高质量的服务。
作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些自动化测试的必须品,如果你用得到的话可以直接拿走,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!
方式:留【自动化测试】即可
【自动化测试交流】:574737577(备注ccc)http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=aHIGBYHUghap5i_4GNUt5dSxrYN_BA3m&authKey=9rU8HTM3ZRVPSeuHVBKHFTEvsTYxn1bDFX9YLoUPJdvXKIPtlRv%2FcKMe0gjD6uHR&noverify=0&group_code=574737577