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

postman定义公共函数这样写,测试组长直呼牛逼!!!

postman定义公共函数

在postman中,如下面的代码:

1、返回元素是否与预期值一致

var assertEqual=(name,actual,expected)=>{tests[`${name}:实际结果: ${actual} , 期望结果:${expected}`]=actual===expected;};

2、返回元素是否与预期值不一致

var assertNotEqual=(name,actual,expected)=>{tests[`${name}:实际结果: ${actual} , 期望结果:${expected}`]=actual!==expected;};

以上都是自定义的断言函数,每次在使用的时候都需要把代码进行复制粘贴,很不方便,可以使用公共函数来实现。

eval() 函数作用

可以接受一个字符串str作为参数,并把这个参数作为脚本代码来 执行。

举例如下:把代码转成字符串并做一个变量,然后通过eval(变量名)函数转成代码直接调用

复制代码

//定义s为变量
var s = 'var a = 10; var b = 20;'
eval(s)  //把s变量的值转成代码;即a = 10;b = 20
tests[a+b] = true  //输出a + b = 30//做断言,实际结果和预期结果一致
var common_function = 'var assertEqual=(name,actual,expected)=>{tests[`${name}:实际结果:${actual} , 期望结果:${expected}`]=actual===expected;};'
eval(common_function)
assertEqual("验证title是否正确",title,"猫_百度搜索")

复制代码

如下操作完成公共函数的编写:

备注:只能使用var定义的函数,不能用const

1、把定义好的函数作为字符串存放在变量中;如下图的common_function变量

2、把上一个定义的变量设置到全局变量中;

3、在需要使用函数的地方,使用eval()函数把全局变量中的值转换为代码进行执行 。

 4、查看执行结果

 自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

通过上面的方式知道可以把函数代码放到全局变量中,那么可以把经常用到的函数代码一起放到全局变量中;

示例:复制代码

//获取当前时间戳 毫秒
var now_time = Date.now()
pm.globals.set("now_time",now_time)//guid实现
const guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
.replace(/x/g, () => (Math.floor(Math.random() * 16)).toString(16))
.replace(/y/g, () => (Math.floor(Math.random() * 4 + 8)).toString(16));
pm.globals.set("guid_value",guid)//随机整数实现
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
min
pm.globals.set("randomInt_num",randomInt(8,15))//从多个选项中选择实现
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
min
const getRandomValue = list => list[randomInt(0, list.length - 1)];
const charsInName = ['王','李','张']
pm.globals.set("people_name",getRandomValue(charsInName))//随机手机号实现
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
min
var mobile_num = `18${randomInt(100000000, 999999999)}`;
pm.globals.set("mobile_num",mobile_num)//同步等待实现:等待5秒后开始执行
const sleep = (milliseconds) => {
const start = Date.now();
while (Date.now() <= start + milliseconds) {}
}
sleep(5000)

把上方的代码拼到一起如下:

var now_time = Date.now();var guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';var randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;var randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;var getRandomValue = list => list[randomInt(0, list.length - 1)];var mobile_num = `18${randomInt(100000000, 999999999)}`;var sleep = (milliseconds) => {const start = Date.now();while (Date.now() <= start + milliseconds) {}};var assertEqual=(name,actual,expected)=>{tests[`${name}:实际结果:${actual} , 期望结果:${expected}`]=actual===expected;};

在全局变量中定义一个公共函数common_function,变量值为拼接的函数

 在Pre-request Script和tests页签中调用common_function中的函数

以随机手机号举例:

1、在Pre-request Script页签中调用公共函数common_function,并再设置一个随机手机号的全局变量;如下图

 

 2、在tests页签中做断言

 3、查看执行结果

 

 总结:

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

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

相关文章:

postman定义公共函数这样写,测试组长直呼牛逼!!!

postman定义公共函数 在postman中&#xff0c;如下面的代码&#xff1a; 1、返回元素是否与预期值一致 var assertEqual(name,actual,expected)>{tests[${name}&#xff1a;实际结果&#xff1a; ${actual} &#xff0c; 期望结果&#xff1a;${expected}]actualexpected…...

单元测试实战(六)其它

为鼓励单元测试&#xff0c;特分门别类示例各种组件的测试代码并进行解说&#xff0c;供开发人员参考。 本文中的测试均基于JUnit5。 单元测试实战&#xff08;一&#xff09;Controller 的测试 单元测试实战&#xff08;二&#xff09;Service 的测试 单元测试实战&am…...

jmeter 主从配置

配置 主从需要在同一子网。 可以修改从机的端口&#xff0c;主要是防火墙的原因&#xff0c;这样就可以在防火墙只配置一个端口&#xff0c;如果没有防火墙&#xff0c;可以不用配置 server_port1099 server.rmi.localport1099 centos防火墙开端口 sudo firewall-cmd --zonep…...

4

【任务 1】容器云平台搭建[5 分] 【题目 1】平台部署–部署容器云平台[1.5 分] 【题目 2】平台部署–部署 Istio 服务网格[0.5 分] 【题目 3】平台部署–部署 KubeVirt 虚拟化[1 分] 【题目 4】平台部署–部署 Harbor 仓库及Helm 包管理工具[1 分] 【题目 5】集群管理–备份 ET…...

C++ Day04 this指针,友元函数,重载

this指针 概念 谁调用 this 所在的函数 ,this 就存储谁的地址 特点 1, 在当前类的非静态成员函数中调用本类非静态成员时 , 默认有 this 关键字 2, 静态成员函数 , 没有 this 指针。 示例 #include <iostream> #include <cstring> using namespace std; class S…...

2023做车载测试真的可以远离内耗!转行车载月入20K!

2023年&#xff0c;车载测试正处于一个发展阶段&#xff0c;随着新能源汽车的蓬勃发展&#xff0c;电气化、智能化逐渐成为发展趋势。在汽车开发过程中&#xff0c;测试是非常重要的一个环节。现在软件越来越多地被应用到汽车上&#xff0c;对软件测试的需求也越来越多、越来越…...

LINUXZ

10.6.2 AT24C02 访问方法 设备地址 从芯片手册上可以知道&#xff0c;AT24C02 的设备地址跟它的 A2、A1、A0 引脚有关&#xff1a; 图 10.36 AT24C02 设备地址引脚配置 294 / 577 打开 I2C 模块的原理图&#xff1a; 开发板配套网盘资料\04_开发板原理图\ 04_Extend_modules\通…...

C#单例模式懒汉式与饿汉式

单例模式一般分为懒汉模式和饿汉模式&#xff0c;懒汉式单例在第一次引用时创建实例&#xff0c;不是在类加载时&#xff1b;饿汉式单例模式是一种在类加载时就创建实例的方式&#xff0c;因此也称为静态初始化。 单例模式实现的技巧时构造私有&#xff0c;向外提供静态实例。…...

小微初创企业,如何利用媒体宣传快速成长

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 对于小微初创企业来说&#xff0c;利用媒体宣传可以快速提升品牌知名度、扩大影响力&#xff0c;进而促进企业的成长。 1.确定宣传目标&#xff1a;是增加销售、提升品牌知名度、还是推…...

【封装UI组件库系列】全局样式的定义与重置

封装UI组件库系列第二篇样式 ​​​​​​&#x1f31f;前言 &#x1f31f;定义全局样式 生成主题色和不同亮度的颜色 ​编辑 中性色及其他变量 &#x1f31f;样式重置 &#x1f31f;总结 ​​​​​​​​​​​​​​&#x1f31f;前言 在前端开发中&#xff0c;大家…...

opencv将32位深图片合成视频跳帧解决办法

在合成视频时候&#xff0c;大多数的图片都是24位深度的&#xff08;即RGB三通道&#xff0c;一个通道8位&#xff09;&#xff0c;但是也存在少量的32位深的图片&#xff08;RGBA&#xff0c;三个颜色通道加上A这个透明度通道&#xff09;&#xff0c;32位和24位的格式是不一样…...

华为obs上传下载-Java版 2023-11-23

弄了半天&#xff0c;老师帮弄成功了&#xff0c;经过同意&#xff0c;分享到网上&#xff0c;希望能帮助更多人&#xff0c;至于怎么弄的&#xff0c;我也不知道。 创建idea项目后&#xff0c;项目结构&#xff0c;对应文件没有的创一个 pom.xm 注意改Java版本&#xff0c;我…...

2023年中国农业机器人行业市场规模及发展趋势分析[图]

农业机器人是一种机器&#xff0c;是机器人在农业生产中的运用&#xff0c;是一种可由不同程序软件控制&#xff0c;以适应各种作业,能感觉并适应作物种类或环境变化&#xff0c;有检测(如视觉等)和演算等人工智能的新一代无人自动操作机械。 农业机器人分类 资料来源&#xf…...

12英寸双轴半自动划片机:颠覆传统划切工艺的五大优势

随着科技的飞速发展&#xff0c;半导体行业对精密划切设备的需求日益增长。在这篇文章中&#xff0c;我们将深入探讨12英寸双轴半自动划片机的优势&#xff0c;这种划片机在半导体制造过程中扮演着至关重要的角色。以下是这种划片机的五大优势。 一、高精度划切 12英寸双轴半自…...

动态神经网络时间序列预测

大家好&#xff0c;我是带我去滑雪&#xff01; 神经网络投照是否存在反锁与记忆可以分为静态神经网络与动态神经网络。动态神经网络是指神经网络带有反做与记忆功能&#xff0c;无论是局部反馈还是全局反锁。通过反馈与记忆&#xff0c;神经网络能将前一时刻的数据保留&#x…...

Unity 三维场景的搭建 软件构造实验报告

实验2&#xff1a;仿真系统功能实现 1.实验目的 &#xff08;1&#xff09;熟悉在Unity中设置仿真场景&#xff1b; &#xff08;2&#xff09;熟悉在Unity中C#语言的使用&#xff1b; &#xff08;3&#xff09;熟悉仿真功能的实现。 2.实验内容 新建一个仿真场景&#x…...

2024贵州大学计算机考研分析

24计算机考研|上岸指南 贵州大学 贵州大学计算机科学与技术学院&#xff08;贵州大学省级示范性软件学院&#xff09;位于贵州省贵阳市花溪区贵州大学东校区。 计算机科学与技术学院&#xff08;软件学院&#xff09;自1972年创办计算机软件本科专业开始&#xff0c;至今已有…...

Spring高级bean的实例化方法

bean的实例化方法 构造方法 实例化bean第一种&#xff1a;使用默认无参构造函数(常用) 第二种创建bean实例&#xff1a;静态工厂实例化&#xff08;了解&#xff09; 第三种&#xff1a;实例工厂&#xff08;了解&#xff09;与FactoryBean&#xff08;实用&#xff09;...

Vue2系列 — 渲染函数 (render + createElement)

官网文档&#xff1a;https://v2.cn.vuejs.org/v2/guide/render-function.html 1 render 函数 render 函数 不使用模板&#xff0c;使用 js 生成虚拟 dom 2 createElement() 接受的参数&#xff1a; 参数1 节点类型参数2 attribute参数3 子节点 3 DEMO <template>&…...

加载SSL证书

使用JDK1.8 开发工具包bin目录下的keytool.exe工具生成ssl密钥&#xff1a; keytool -genkey -alias mykey -keyalg RSA -keysize 2048 -validity 365 -keystore mykeystore.p -genkey&#xff1a; 表示创建密钥。-alias&#xff1a; 保存时的别名。-keyalg&#xff1a;加密算…...

GameDocGenSkill:基于代码即文档理念的游戏设计自动化生成方案

1. 项目概述与核心价值最近在游戏开发社区里&#xff0c;一个名为“GameDocGenSkill”的项目引起了我的注意。这个项目由开发者 maqingwen2 发起&#xff0c;其核心目标直指一个困扰了无数游戏开发团队的老大难问题&#xff1a;如何高效、规范地生成和管理游戏设计文档。如果你…...

sqli-labs通关指南(1-10)

sqli-labs通关指南&#xff08;1-10&#xff09; get提交&#xff1a;url类型 数据长度2k35 优点速度非常快 缺点&#xff1a;不安全&#xff0c;明文传输 post提交&#xff1a;请求体传输 数据长度无限制 安全性高 速度比get慢&#xff0c;浏览器不缓存数据 less1 P…...

第109篇:AI+跨境出海实战——智能选品、多语言营销与客服自动化(项目实战)

文章目录 项目背景 技术选型 架构设计 核心实现 1. 智能选品模块:从“凭感觉”到“看数据” 2. 多语言内容生成与营销模块 3. 客服自动化模块 踩坑记录 效果对比 项目背景 这几年,我身边不少做传统外贸和跨境电商的朋友都跟我倒过苦水:选品靠感觉,一囤货就滞销;做欧美市场…...

TVA与传统视觉技术的本质区别——以工业视觉检测为例(20)

重磅预告&#xff1a;本专栏将独家连载新书《AI视觉技术&#xff1a;从入门到进阶》精华内容。本书是《AI视觉技术&#xff1a;从进阶到专家》的权威前导篇&#xff0c;特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“AI教…...

工控机上的游戏手柄:Ubuntu 20.04连接Xbox/北通手柄完整配置与避坑指南

工控机上的游戏手柄&#xff1a;Ubuntu 20.04连接Xbox/北通手柄完整配置与避坑指南 在工业自动化与机器人控制领域&#xff0c;工控机往往需要灵活的人机交互方式。传统键盘鼠标在移动控制、机械臂操作等场景下显得笨拙&#xff0c;而游戏手柄的物理摇杆和按键布局恰好能提供更…...

暗黑破坏神2重制版自动化刷宝终极指南:Botty像素级智能助手全解析

暗黑破坏神2重制版自动化刷宝终极指南&#xff1a;Botty像素级智能助手全解析 【免费下载链接】botty D2R Pixel Bot 项目地址: https://gitcode.com/gh_mirrors/bo/botty 想要在《暗黑破坏神2重制版》中解放双手&#xff0c;实现高效自动刷宝吗&#xff1f;Botty作为一…...

地物杂波损耗详细公式与分析

F. 地物杂波损耗 地物杂波损耗是卫星—地面链路传输中的一种重要衰减成分&#xff0c;主要由地面接收终端附近的建筑物及自然环境引起的遮挡与散射造成。ITU 在 ITU-R P.2108 中给出了地面损耗的推荐计算方法&#xff0c;但该方法基于统计模型&#xff0c;仅能提供概率性预测&a…...

SteamCleaner:释放被游戏平台“遗忘“的硬盘空间,轻松找回100GB+

SteamCleaner&#xff1a;释放被游戏平台"遗忘"的硬盘空间&#xff0c;轻松找回100GB 【免费下载链接】SteamCleaner :us: A PC utility for restoring disk space from various game clients like Origin, Steam, Uplay, Battle.net, GoG and Nexon :us: 项目地址…...

千万级图片秒级检索:本地智能以图搜图工具实战指南

千万级图片秒级检索&#xff1a;本地智能以图搜图工具实战指南 【免费下载链接】ImageSearch 基于.NET10的本地硬盘千万级图库以图搜图案例Demo和图片exif信息移除小工具分享 项目地址: https://gitcode.com/gh_mirrors/im/ImageSearch 你是否曾在海量图片库中迷失方向&…...

AI训练师生存图鉴:从考试难度到薪资内幕,荔猫claw带你揭秘智能时代的“金饭碗”

过去一年&#xff0c;“AI训练师”从一个新兴职业&#xff0c;火成了无数人挤破头想进的赛道。打开抖音、小红书&#xff0c;到处是“零基础也能月入三万”、“AI训练师是2025年最吃香的职业之一”的推广。这些信息真真假假&#xff0c;让人既心动又疑虑——AI训练师考试难度真…...