05 接口自动化-框架封装思想建立之httprunner框架(中)
文章目录
- 一、httprunner常规的关键字详解
- httprunner测试用例的结构
- 简化:
- 二、httpruner接口自动化项目架构
- 三、环境变量
- 四、代码
- 项目框架如下图:
- api/wx_get_token.yml
- api/wx_get_tag.yml
- testcases/wx_get_tag.yml
- testsuites/wx_get_tag.yml
- .env
一、httprunner常规的关键字详解
httprunner测试用例的结构
- config:配置
- name:名称
- variables:全局变量
- verify:https协议
- base_url:环境变量
- teststeps:步骤
- name:步骤名称
- request:请求
- headers:请求头
- method:请求方式
- params:参数
- url:请求路径
- cookie:cookie信息
- json:用于发送http请求正文
- data:用于发送http请求正文
- extract:提取(通过content或body提取,json提取器。支持正则表达式提取。)
- validate:断言
- eq相等
- equals相等
- str_eq:字符串相等
- lt:小于
- le:小于或等于
- gt:大于
- ge:大于或等于
- contains:包含
简化:
- name:接口名称
- request:请求
- headers:请求头
- method:请求方式
- data:参数
- url:请求路径
- cookie:cookie信息
- extract:提取(通过content或body提取,json提取器。支持正则表达式提取。)
- validate:断言
- equals相等
- str_eq(str(a)=str(b))
- contains:包含
- request:请求
二、httpruner接口自动化项目架构
hrp 安装请参考下面两篇文章:
- httpruanner 安装官方教程
- HttpRunner4.x 安装与使用
先要切换到项目的根目录,使用:hrp startproject 项目名
- har:存放har文件
- reports:存在报告
- testcases:存放测试用例
- api:存放yml文件,接口定义。
- data:数据驱动
- testsuites:测试套件
- .env:存放环境变量
- .gitignore:当你的项目使用git做版本控制的时候,添加在此文件中的文件不会被git管理。
- debugtalk.py:实现热加载。
分层架构:三层
- 1.接口定义层(api):为了更好的管理接口描述,每个一个接口定义都应该尽量的能够单独运行。
- 2.测试用例层(testcases)
- 3.测试套件层(testsuites)
关系:
- testcases调用api层(使用api关键字),testsuites调用testcases层。(使用testcase关键字)
三、环境变量
环境变量可以写入.env文件。
然后在api接口定义层里面使用:${ENV(变量名)}
获取环境变量。
httprunner实际的工作应用其他不多,只有一小部分的公司用它做接口自动化,主要目的:思想
。
四、代码
项目框架如下图:
api/wx_get_token.yml
config:name: get tokenvariables:appid: ${ENV(appid)}secret: ${ENV(secret)}grant_type: ${ENV(grant_type)}base_url: ${ENV(test_url)}
teststeps:
- name: /cgi-bin/tokenrequest:headers:Postman-Token: df2780eb-2b14-4b5b-9318-b52133a3d43bUser-Agent: PostmanRuntime/7.44.0method: GETparams:appid: $appidgrant_type: $grant_typesecret: $secreturl: /cgi-bin/tokenextract:access_token: content.access_tokenvalidate:- eq:- status_code- 200
api/wx_get_tag.yml
config:name: get tagbase_url: ${ENV(test_url)}
teststeps:
- name: /cgi-bin/tags/getrequest:headers:Postman-Token: c82dec4a-4c9a-4848-8061-94142d082e2dUser-Agent: PostmanRuntime/7.44.0method: GETparams:access_token: $access_tokenurl: /cgi-bin/tags/getextract:access_token: content.access_tokenvalidate:- eq:- status_code- 200
testcases/wx_get_tag.yml
config:name: get tagbase_url: ${ENV(test_url)}teststeps:
- name: get tokenapi: api/wx_get_token.ymlexport:- access_token
- name: get tagapi: api/wx_get_tag.yml
testsuites/wx_get_tag.yml
config:name: get tagteststeps:
- name: get tagtestcase: testcases/wx_get_tag.yml
.env
test_url=https://api.weixin.qq.com
appid=wx74a8627810cfa308
secret=e40a02f9d79a8097df497e6aaf93ab80
grant_type=client_credential