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

04 接口自动化-框架封装思想建立之httprunner框架(上)

文章目录

      • 一、什么是Httprunner?
      • 二、httprunner的设计理念
      • 三、httprunner环境安装
      • 四、httprunner快速上手
      • 五、YAML测试用例结构分析
      • 六、接口关联
      • 七、动态参数:通过debugtalk.py的热加载的方式实现。
      • 八、环境变量、全局变量和局部变量
      • 九、生成HTML格式的报告

接口自动化框架封装思想的建立。httprunner(热加载:动态参数),去应用意义不大。

一、什么是Httprunner?

  • 1.httprunner是一个面向http协议的通用测试框架,目前最新的版本3.X。以前比较流行的2.X的版本。
  • 2.它的思想是只需要维护yaml/json/py文件就可以实现接口自动化测试,性能测试,线上
    监控,持续集成。
  • 3.架构图

二、httprunner的设计理念

  • 1.充分复用开源项目,不追求重复的造轮子,而是将市面强大的轮子转成战车,降低框架的
    开发成本以及学习成本。
  • 2.遵循约定大于临时配置的准则。(合同,考勤)
  • 3.配置文件组织测试用例。

三、httprunner环境安装

  • 1.python环境:3.7.3
  • 2.安装httprunner
    pip install httprunner
    验证:hrun -V

四、httprunner快速上手

  • 1.必须知道的5个httprunner的命令
    httprunner:主命令,用于所有功能
    hrun:用于运行yaml/json/pytest测试用例。
    hmake:用于将yaml/json测试用例转化成pytest文件。
    har2case:用于将har文件转化成yaml/json/pytest测试用例。
    locusts:用于性能测试
  • 2.使用抓包工具:fiddler、charles操作一遍抓包。导出har文件。
  • 3.通过har2case命令把har文件转化成yaml/json/pytest文件格式。
    har2case get_token.har 生成pytest文件格式的测试用例
    har2case get_token.har -2y 生成yaml格式的测试用例
    har2case get_token.har -2j 生成json格式的测试用例
    运行:
    hrun get_token.yml
    hrun get_token.json
    hrun get_token_test.py
    发现运行完成之后py文件里面的断言自动的去掉了,说明不管是运行yml、json其实最终都会重新成py文件运行。

五、YAML测试用例结构分析

每一个测试用例都是一个list of dict(字典列表)结构,其中包括config【配置】和
teststeps【步骤】
[{},{},{}]
cofig:配置
name:用例名称
variables:全局变量
verify:是否开启https验证
teststeps:步骤
name: /cgi-bin/token 步骤名称
request: 请求
headers: 请求头

Accept: '*/*'
Accept-Encoding: gzip, deflate, br
Cache-Control: no-cache
Connection: keep-alive
Host: api.weixin.qq.com
Postman-Token: 50f8bb1a-7826-49f8-835e-ec889063b7cc
User-Agent: PostmanRuntime/7.28.0

method: GET 请求方式
params: 请求参数
appid: wx74a8627810cfa308
grant_type: client_credential
secret: e40a02f9d79a8097df497e6aaf93ab80
url: https://api.weixin.qq.com/cgi-bin/token 请求路径
validate:断言

eq:
status_code
200
eq:
headers.Content-Type
application/json; encoding=utf-8

六、接口关联

在request标签下方加一个extract标签提取返回值,通过content或body提取。
!!注意:request标签与extract标签是并列关系

extract:aaa: content.access_token

然后通过$变量名使用

params:access_token: $aaa

七、动态参数:通过debugtalk.py的热加载的方式实现。

第一步:创建一个debugtalk.py文件,然后再里面写一个函数。

import random# 获取随机数
def get_random_number(min_value, max_value):number = random.randint(min_value, max_value)print(number)return number

第二步:在yaml文件中通过${函数名()}的方式调用

name: hc${get_random_number(100000,999999)}

八、环境变量、全局变量和局部变量

1、环境变量:
开发环境,测试环境,线上环境,预发布环境。
在config 标签下加入:
base_url: https://api.weixin.qq.com
2、全局变量和局部变量
config标签下的variables是全局变量
teststeps标签下的variables是局部变量
有两种写法:1.换行的键值对 2.{}的方式

九、生成HTML格式的报告

hrun httprunneres --html=httprunneres/report.html
就是pytest里面pytest-html插件的报告一模一样。

相关文章:

  • 【图像大模型】Stable Diffusion 3 Medium:多模态扩散模型的技术突破与实践指南
  • 第9天-Python数据爬取实战:从入门到进阶完整指南
  • 学习日记-day11-5.20
  • IEEEtran中文献中的作者大于3个时,用et al.省略
  • 第十六届C++B组easyQuestions
  • 大模型会话窗口为什么对最新和最久记忆表现较好
  • 如何保存解析后的商品信息?
  • Cribl 对数据源进行过滤-01
  • Unity自定义shader打包SpriteAtlas图集问题
  • 【AI News | 20250520】每日AI进展
  • 萌新联赛第(三)场
  • 电子制造企业智能制造升级:MES系统应用深度解析
  • 79、modelsim单独仿真altera带IP核的文件
  • 初识Linux · 数据链路层
  • 大模型应用开发“扫盲”——基于市场某款智能问数产品的技术架构进行解析与学习
  • 【图像大模型】Kolors:基于自监督学习的通用视觉色彩增强系统深度解析
  • C++ 读取英伟达显卡名称、架构及算力
  • Raft算法学习(1)博士论文大纲
  • Java并发进阶系列:jdk1.8的HashMap红黑树设计原理及其源代码深入解析(不含balanceDetection方法)
  • AI作曲革新:ACE-Step如何推动音乐创作走向大众
  • 重庆黔江一足疗养生馆负责人涉嫌违法犯罪被移送检察机关
  • 新华时评:网络平台“开盲盒式”扣费,“钱小”事大
  • 换灯如换脸!西安碑林整修重开观展体验提升
  • 国家统计局督察组:江苏有关地区仍存在干预数据上报等问题
  • 上海地铁:一孩童鞋子卡于电梯梯级处,其间未造成人员受伤
  • 复旦兼职教授高纪凡首秀,勉励学子“看三十年才能看见使命”