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 安装请参考下面两篇文章:

  • httprunner 安装官方教程
  • 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.mzph.cn/web/80861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW中EtherCAT从站拓扑离线创建及信息查询

该 VI 主要用于演示如何离线创建 EtherCAT 从站拓扑结构,并查询从站相关信息。EtherCAT(以太网控制自动化技术)是基于以太网的实时工业通信协议,凭借其高速、高效的特性在自动化领域广泛应用。与其他常见工业通讯协议相比&#xf…

java的synchronized 原理及功能

简介: Java中的synchronized关键字是一种同步机制,用于控制多个线程对共享资源的访问。 原理: 在Java锁有一个内部锁 Intrinsic Lock,也称为监视器锁或管程锁,每个Java对象都有一个关联的监视器锁,隐式锁…

HarmonyOS NEXT端云一体化工程目录结构

视频课程学习报名入口:HarmonyOS NEXT端云一体化开发 端云一体化开发工程由端开发工程(Application)和云开发工程(CloudProgram)两大核心模块构成。 1)端开发工程目录结构 端开发工程主要用于开发应用端侧的业务代码,通用云开发模板的端开发工程目录结构如下图所示: …

普通用户的服务器连接与模型部署相关记录

普通用户的服务器连接与模型部署相关记录 一、从登录到使用自己的conda 1.账号登陆: ssh xxx172.31.226.236 2.下载与安装conda: 下载conda: wget -c https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh 安装con…

亲测有效!OGG 创建抽取进程报错 OGG-08241,如何解决?

前言 今天在测试 OGG 一个功能的时候,需要重新初始化 oggca,所以重装了一下 OGG。重建完之后重新添加抽取进程报错,一直无法添加成功: 经过一翻分析,找到了解决方案,本文记录一下解决过程。 问题描述 OG…

Docker构建 Dify 应用定时任务助手

概述 Dify 定时任务管理工具是一个基于 GitHub Actions 的自动化解决方案,用于实现 Dify Workflow 的定时执行和状态监控。无需再为缺乏定时任务支持而感到困扰,本工具可以帮助设置自动执行任务并获取实时通知,优化你的工作效率。 注意&…

ubuntu24.04+RTX5090D 显卡驱动安装

初步准备 Ubuntu默认内核太旧,用mainline工具安装新版: sudo add-apt-repository ppa:cappelikan/ppa sudo apt update && sudo apt full-upgrade sudo apt install -y mainline mainline list # 查看可用内核列表 mainline install 6.13 # 安装…

网络爬虫(Web Crawler)详解

网络爬虫(Web Crawler)详解 1. 基本概念与核心目标 定义: 网络爬虫是一种自动化的程序,通过HTTP协议访问网页,提取并存储数据(如文本、链接、图片),并根据策略递归访问新链接。核心目标: 数据采集:抓取特定网站或全网公开数据。索引构建:为搜索引擎提供页面内容(如…

大模型如何助力数学可视化?

大家好,我是 i 学习的老章 在数学学习和教学中,将抽象概念可视化对于理解至关重要。Manim 是一个强大的数学动画引擎,由著名数学科普视频作者 3Blue1Brown 开发并广为人知。 老章较早之前就介绍过 manim:B 站上爆红的数学视频&a…

Oracle基础知识(二)

目录 1.聚合函数 2.COUNT(1)&COUNT(*)&COUNT(字段)区别(面试常问) 3.分组聚合——group by 4.去重:DISTINCT 、GROUP BY 5.聚合函数的过滤HAVING 6.oracle中having与where的区别 (面试常问) 7.ROUND与TRUNC函数 8.ROLLUP上卷…

DTAS 3D多约束装配助力悬架公差分析尺寸链计算:麦弗逊/双叉臂/多连杆/H臂一网打尽

摘要:汽车四轮定位参数与悬架密切相关。汽车悬架对于车辆的行驶性能、安全性和舒适性至关重要。DTAS 3D提供了各类型悬架的公差仿真分析方法。 关键字:DTAS 3D、前后悬架、公差仿真分析、 运动耦合 一、悬架公差分析综述 悬架是车身(或车架…

Serverless爬虫架构揭秘:动态IP、冷启动与成本优化

一、问题背景:旧技术的瓶颈 在传统爬虫架构中,我们通常部署任务在本地机器或虚拟机中,搭配定时器调度任务。虽然这种方式简单,但存在以下明显缺陷: 固定IP易被封禁:目标网站如拼多多会通过IP频率监控限制…

设备预测性维护的停机时间革命:中讯烛龙如何用AI重构工业设备管理范式

在工业4.0的智能化浪潮中,非计划停机每年吞噬企业3%-8%的产值。中讯烛龙预测性维护系统通过多模态感知矩阵分布式智能体的创新架构,实现设备健康管理的范式跃迁,帮助制造企业将停机时间压缩70%以上。本文将深度解析技术实现路径与行业级实践方…

Java面试攻略:从Spring Boot到微服务架构的深入探讨

Java面试攻略:从Spring Boot到微服务架构的深入探讨 场景设定 在一家知名互联网大厂的会议室里,资深面试官王老师正在对一位求职者谢飞机进行技术面试。谢飞机是一位幽默风趣的程序员,他的回答有时让人捧腹大笑。 第一轮:核心技…

LlamaIndex

1、大语言模型开发框架的价值是什么? SDK:Software Development Kit,它是一组软件工具和资源的集合,旨在帮助开发者创建、测试、部署和维护应用程序或软件。 所有开发框架(SDK)的核心价值,都是降低开发、维护成本。 大语言模型开发框架的价值,是让开发者可以更方便地…

【linux命令】git命令简单使用

git命令简单使用 1. 将代码下载到到本地2. 查看分支是否正确3. 将工作目录中的变更添加到暂存区,为下一次提交做准备4. 提交更改,添加提交信息5. 将本地的提交推送到远程仓库6.从远端仓库拉取分支代码7.查看修改日志8. 解决冲突 1. 将代码下载到到本地 …

debian系统redis-dump安装

1. ​Ruby 环境​ Redis-dump 是一个 Ruby 工具,需先安装 Ruby 和 RubyGems。 安装命令​: sudo apt update sudo apt install ruby-full build-essential[roota29d39f5fd10:/opt/redis-dump/bin# apt install ruby-full build-essential Reading pac…

微软押注“代理式AI网络”:一场重塑软件开发与工作方式的技术革命

在 2025 年 Build 开发者大会上,微软正式发布了其面向“开放代理式网络(Open Agentic Web)”的宏大战略,推出超过 50 项 AI 相关技术更新,涵盖 GitHub、Azure、Windows 和 Microsoft 365 全线产品。这一系列更新的核心…

【音频】wav文件如何解析编码格式(压缩格式)?

要确定一个WAV文件的编码格式,可以通过以下几种方法实现,包括使用操作系统自带工具、专业音频软件或编程解析文件头信息。以下是详细说明: 一、通过文件属性查看(Windows/macOS) 1. Windows系统 步骤: 右…

算法打卡第三天

10.长度最小的子数组 (力扣209题) 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子…