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

HttpRunner辅助函数debugtalk.py

辅助函数debugtalk.py

  Httprunner框架中,使用yaml或json文件进行用例描述,无法做一些复杂操作,如保存一些数据跨文件调用,或者实现一些复杂逻辑判断等,为了解决这个问题,引入了debugtalk.py辅助函数来进行一些复杂操作。

操作步骤:

1.在项目根目录下新建debugtalk.py,在这个py文件中编写你要实现的逻辑代码函数,如下图:

2.在yaml或json中使用${函数名()}引用对应的函数,如下图:

# 调用 debugtalk.py文件中的函数
- config:name: 百度主页base_url: https://www.baidu.comoutput:- title- test:name: 百度搜索request:url: /smethod: GETheaders:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflate, brAccept-Language: zh-CN,zh;q=0.9User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36params:wd: ${get_value()}extract:- title: <title>(.+?)</title>validate:- eq: [$title,"猫_百度搜索"]

hook机制

  Httprunner 框架中的 hook 机制相当于unittest框架中的 setup , teardown 函数,用来进行测试用例执行之前的环境初始化以及测试用例执行完毕之后的环境清理操作。

 httprunner 中的 hooks 机制可以用在测试用例层级也可以用在测试步骤层级,其关键字是:setup_hooks、teardown_hooks

使用步骤:

1.一般在debugtalk.py中编写相应的初始化及环境清理函数

2.在测试用例文件中的 config 及test 中根据需要加入setup_hooks、teardown_hooks

# hook 是完成初始化和清理工作的
- config:name: 百度主页base_url: https://www.baidu.comoutput:- title# 放到用例层级setup_hooks:- ${setup_case()}teardown_hooks:- ${teardown_case()}- test:name: 百度搜索# 放到步骤层级setup_hooks:- ${setup_start(我是传入的参数)}teardown_hooks:- ${teardown_close(我是传入的参数)}request:url: /smethod: GETheaders:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflate, brAccept-Language: zh-CN,zh;q=0.9User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36params:wd: ${get_value()}extract:- title: <title>(.+?)</title>validate:- eq: [$title,"猫_百度搜索"]

忽略跳过用例:

  Httprunner框架中使用和unittest类似的方式进行忽略跳过用例,关键字有3个:

skip:无条件跳过用例

skipIf:条件成立,返回值为True时候成立(非0、非空等为true)

kipUnless:条件不成立,返回值为False时候成立(0、空等为false)

上述关键字只能在test 测试步骤中使用

# skip是用来忽略跳过测试用例
- config:name: 百度主页base_url: https://www.baidu.comoutput:- title- test:name: 百度搜索# 忽略跳过用例只能在测试步骤中使用skip: 无条件跳过
#    skipIf: True         # 条件为 True 时跳过
#    skipUnless: False    # 条件为 False 时跳过request:url: /smethod: GETheaders:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9Accept-Encoding: gzip, deflate, brAccept-Language: zh-CN,zh;q=0.9User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36params:wd: 猫extract:- title: <title>(.+?)</title>validate:- eq: [$title,"猫_百度搜索"]

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

相关文章:

HttpRunner辅助函数debugtalk.py

辅助函数debugtalk.py Httprunner框架中&#xff0c;使用yaml或json文件进行用例描述&#xff0c;无法做一些复杂操作&#xff0c;如保存一些数据跨文件调用&#xff0c;或者实现一些复杂逻辑判断等&#xff0c;为了解决这个问题&#xff0c;引入了debugtalk.py辅助函数来进行一…...

PC端扫描小程序二维码登录

1、获取二维码地址&#xff0c;通过请求微信开发者文档中的服务端获取无限制小程序二维码URL #controller层 import org.apache.commons.codec.binary.Base64;/*** 获取小程序二维码*/PassTokenGetMapping("/getQrCode")public AjaxResult getQrCode(BlogUserDto bl…...

计算机毕业设计 | SpringBoot+vue移动端音乐网站 音乐播放器(附源码)

1&#xff0c;项目背景 随着计算机技术的发展&#xff0c;网络技术对我们生活和工作显得越来越重要&#xff0c;特别是现在信息高度发达的今天&#xff0c;人们对最新信息的需求和发布迫切的需要及时性。为了满足不同人们对网络需求&#xff0c;各种特色&#xff0c;各种主题的…...

Flutter 中的 Stream:异步编程的利器

在Flutter中&#xff0c;异步编程是非常重要的一部分&#xff0c;特别是在处理用户输入、网络请求或其他涉及时间的操作时。Flutter提供了一种强大的工具&#xff0c;称为Stream&#xff0c;用于简化异步编程的过程。 什么是 Stream&#xff1f; Stream是一种用于处理异步数据…...

2023 波卡年度报告选读:Polkadot SDK 与开发者社区

原文&#xff1a;https://dashboards.data.paritytech.io/reports/2023/index.html#section6 编译&#xff1a;OneBlock 编者注&#xff1a;Parity 数据团队发布的 2023 年 Polkadot 年度数据报告&#xff0c;对推动生态系统的关键数据进行了深入分析。报告全文较长&#xff…...

深入了解Go语言中的unsafe.Sizeof():探究变量与数据类型的内存占用

当涉及到在 Go 语言中确定变量或数据类型所占用的内存空间大小时&#xff0c;unsafe 包中的 Sizeof() 函数成为了一个强有力的工具。它可以用来获取变量或数据类型所占用的字节数&#xff0c;但需要注意的是&#xff0c;它不考虑内存对齐和填充的情况。因此&#xff0c;在使用 …...

安卓上使用免费的地图OpenStreetMap

前一段使用了微信的地图&#xff0c;非常的好用。但是存在的问题是海外无法使用&#xff0c;出国就不能用了&#xff1b; 其实国内三家&#xff1a;百度&#xff0c;高德&#xff0c;微信都是一样的问题&#xff0c;当涉及到商业使用的时候需要付费&#xff1b; 国外除了谷歌…...

基于Java SSM框架实现时间管理系统项目【项目源码+论文说明】

基于java的SSM框架实现时间管理系统演示 摘要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于时间管理系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了时间管理…...

Mac安装upx及不同os计算md5值

Mac安装upx 最近需要将exe文件打包到pod内部&#xff0c;为了减少包占用磁盘空间&#xff0c;需要借用upx对windows exe文件进行压缩。 1 概念&#xff1a;压缩工具 UPX 全称是 “Ultimate Packer for eXecutables”&#xff0c;是一个免费、开源、编写、可扩展、高性能的可执行…...

Qt/C++编写视频监控系统82-自定义音柱显示

一、前言 通过音柱控件实时展示当前播放的声音产生的振幅的大小&#xff0c;得益于音频播放组件内置了音频振幅的计算&#xff0c;可以动态开启和关闭&#xff0c;开启后会对发送过来的要播放的声音数据&#xff0c;进行运算得到当前这个音频数据的振幅&#xff0c;类似于分贝…...

SpringBoot 如何 配置端口号

结论 server:port: 8088演示 [Ref] 快速构建SpringBoot项目...

跟随chatgpt从零开始安装git(Windows系统)

为什么我们要安装Git&#xff1f;Git有什么用&#xff1f; 1. 版本控制&#xff1a;Git 可以追踪代码的所有变化&#xff0c;记录每个提交的差异&#xff0c;使您能够轻松地回溯到任何历史版本或比较不同版本之间的差异。 2. 分支管理&#xff1a;通过 Git 的分支功能&#xff…...

C++类与对象基础(6)

(注&#xff1a;本篇文章介绍部分内容时&#xff0c;需要用到上盘文章中日期类的代码&#xff0c;文章链接如下&#xff1a;C类与对象基础(5)——日期类的实现-CSDN博客​​​​​​&#xff09; 目录 1. 运算符重载的相关补充&#xff1a; 1.1流运算符重载出现的问题&#x…...

OS_lab——分页机制与内存管理

认真阅读章节资料&#xff0c;掌握什么是分页机制 调试代码&#xff0c;掌握分页机制基本方法与思路 代码pmtest6.asm中&#xff0c;212行~237行&#xff0c;设置断点调试这几个循环&#xff0c;分析究竟在这里做了什么 掌握PDE&#xff0c;PTE的计算方法 动手画一画这个映…...

【面试】Redis基础知识

题目 为什么Redis是单线程却性能很高&#xff1f; Redis是一个高性能的基于内存的键值存储系统。它之所以能够达到高性能&#xff0c;主要有以下几个原因&#xff1a; 基于内存&#xff1a;Redis将数据存储在内存中&#xff0c;而不是硬盘上&#xff0c;这使得数据的读写速度…...

CentOS 9 (stream) 安装 Docker

1. Docker 简介 Docker 是一个开源的容器化平台&#xff0c;可帮助开发者轻松地创建、部署和运行应用程序。Docker 使开发人员能够在一个独立的容器中打包应用程序及其依赖项&#xff0c;这样他们就可以轻松地将应用程序移植到任何其他环境中。 Docker 主要由以下几个组件组成…...

vite中配置服务代理

前言 在vite中配置服务代理和webpack中大差不差,不过有些写法会有些不同 具体配置:配置 Vite {#configuring-vite} | Vite中文网 这里我写了一个demo,如下所示 开启node服务 我用express启动了一个服务,分别暴露两个接口 进行相关配置 在vite.config.ts文件中进行配置 e…...

kotlin 中 any, all , none

any 如果至少有一个元素匹配给定谓词&#xff0c;那么 any() 返回 true。 all 如果没有元素与给定谓词匹配&#xff0c;那么 none() 返回 true。 none 如果所有元素都匹配给定谓词&#xff0c;那么 all() 返回 true。 请注意&#xff0c;在一个空集合上使用任何有效的谓词去…...

如何使用 Python、Node.js 和 Go 创建基于 YOLOv8 的对象检测 Web 服务

1. 介绍 这是有关 YOLOv8 系列文章的第二篇。在上一篇文章中我们介绍了YOLOv8以及如何使用它&#xff0c;然后展示了如何使用 Python 和基于 PyTorch 的官方 YOLOv8 库创建一个 Web 服务来检测图像上的对象。 在本文中&#xff0c;将展示如何在不需要PyTorch和官方API的情况下…...

pod节点jar包替换流程

1、查找到该docker容器 docker ps | grep backend # ./entrypoint.sh文件启动的那个容器2、替换jar 包 mv xxx.jar app.jar docker cp app.jar 66bc6fea9fb5:/home/aimind/3、重启容器 docker restart 66bc6fea9fb5 4、重启容器后进行功能验证 功能验证没问题了&#xff0c;再…...

tcc-g15: 开源散热管理工具实战指南

tcc-g15: 开源散热管理工具实战指南 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 Thermal Control Center&#xff08;tcc-g15&#xff09;是一款专为Dell G…...

4大技术支柱:面向硬件开发者的开源码表定制指南

4大技术支柱&#xff1a;面向硬件开发者的开源码表定制指南 【免费下载链接】X-TRACK A GPS bicycle speedometer that supports offline maps and track recording 项目地址: https://gitcode.com/gh_mirrors/xt/X-TRACK X-TRACK作为一款支持离线地图和轨迹记录的GPS自…...

互联网大厂 Java 面试实战:一次“高并发系统追问”下的真实对话

在大多数 Java 面试中&#xff0c;真正拉开差距的从来不是“你会多少知识点”&#xff0c;而是当系统出现问题时&#xff0c;你是否知道该怎么扛。很多候选人熟悉各种八股文&#xff0c;但一旦进入场景题就会卡住。下面通过一场更贴近真实大厂风格的面试&#xff0c;对话式还原…...

百川2-13B-4bits量化版对比测试:OpenClaw日常任务执行效率报告

百川2-13B-4bits量化版对比测试&#xff1a;OpenClaw日常任务执行效率报告 1. 测试背景与动机 最近在折腾OpenClaw自动化工作流时&#xff0c;发现一个棘手问题&#xff1a;当任务链条较长时&#xff0c;本地部署的大模型显存占用会飙升到16GB以上&#xff0c;导致我的RTX 30…...

对抗训练新玩法:用AdverIN攻击自己反而提升医学分割模型20%泛化性

医学影像分割的对抗训练革命&#xff1a;AdverIN如何让模型在新设备上表现更优 医学影像分析领域正面临一个尴尬的现实&#xff1a;实验室里表现优异的深度学习模型&#xff0c;在真实临床环境中常常"水土不服"。不同医院使用的扫描设备、成像协议差异导致的域偏移&a…...

计算机毕业设计springboot基于的游戏交易平台 基于SpringBoot的虚拟资产流通服务平台的设计与实现 基于SpringBoot架构的网络游戏账号及道具交易系统的设计与实现

计算机毕业设计springboot基于的游戏交易平台&#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着互联网技术的飞速发展和网络游戏产业的蓬勃兴起&#xff0c;虚拟资产交易已成为…...

为什么你的USB设备总接触不良?A/B型接口物理结构对比与耐久性测试

为什么你的USB设备总接触不良&#xff1f;A/B型接口物理结构对比与耐久性测试 每次给手机充电都要反复调整角度&#xff0c;打印机线稍微碰一下就断开连接——这些恼人的USB接口问题&#xff0c;本质上都是物理结构设计的差异在作祟。作为消费电子领域最基础的连接标准&#xf…...

避坑指南:关系数据库设计中90%人会犯的完整性约束错误(附真实案例)

避坑指南&#xff1a;关系数据库设计中90%人会犯的完整性约束错误&#xff08;附真实案例&#xff09; 在电商大促期间&#xff0c;某平台突然出现大量"幽灵订单"——用户支付成功后订单消失&#xff0c;而库存却异常扣减。技术团队紧急排查发现&#xff0c;问题根源…...

电池基本概念

1、SOC和SOH&#xff1a;指标核心定义物理意义取值范围关键作用SOCState of Charge&#xff08;荷电状态&#xff09;&#xff0c;表示电池当前剩余容量占其实际可用容量的百分比电池 “当前电量”&#xff08;类似手机电量&#xff09;0%~100%指导充放电控制&#xff08;如电动…...

英雄联盟智能辅助套件:重新定义MOBA游戏体验的开源工具集

英雄联盟智能辅助套件&#xff1a;重新定义MOBA游戏体验的开源工具集 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Tool…...