当前位置: 首页 > ai >正文

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:包含

二、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
http://www.xdnf.cn/news/7542.html

相关文章:

  • Qt 控件发展历程 + 目标(1)
  • <uniapp><vuex><状态管理>在uniapp中,如何使用vuex实现数据共享与传递?
  • 基于“岗课赛证”融通的农业物联网专业教学方案
  • Ⅱ 链表 episode3
  • 自回归图像编辑 EditAR: Unified Conditional Generation with Autoregressive Models
  • 力扣第5题:最长回文子串(动态规划)
  • 【全解析】EN18031标准下的NMM网络监控机制
  • css使用clip-path属性切割显示可见内容
  • 【MySQL】第七弹——复习总结 视图
  • SSRF(服务器端请求伪造)基本原理靶场实现
  • CVE-2017-4971源码分析与漏洞复现
  • 谈谈对《加密算法》的理解
  • 零售智能执行大模型架构设计:从空间建模到上下文推理,再到智能Agent
  • DB31/T 1552-2025《居民电子健康档案应用系统等级评估指南》:上海地方标准全面解析
  • 什么是VR展示?VR展示的用途
  • 数据库4——存储过程及游标
  • leetcode 合并区间 java
  • ajax post请求 解决自动再get请求一次
  • 黑马Java基础笔记-13常用查找算法
  • 山东大学软件学院项目实训-基于大模型的模拟面试系统-Vditor编辑器上传图片
  • Prompt Tuning:轻量级大模型微调全攻略
  • KC 喝咖啡/书的复制/奶牛晒衣服/ 切绳子
  • 打破建筑与制造数据壁垒:Revit 到 STP 格式转换全攻略(含插件应用 + 迪威模型实战)
  • 闲时处理技术---CAD C#二次开发
  • C++23 容器从其他兼容范围的可构造性与可赋值性 (P1206R7)
  • CoreBluetooth 入门:扫描并连接 BLE 手环实战
  • 安卓settings单双屏显示
  • Qt调用librdkafka
  • 基于ROS2/Gazebo的室内送餐机器人系统开发实战教程
  • 山东大学计算机图形学期末复习完结篇上——24历年题