学会这一招,轻松玩转小程序自动化

news2024/11/25 12:49:42

jmeter 可以做性能测试,这个很多人都知道,那你知道,jmeter 可以在启动运行时,指定线程数和运行时间,自定义性能场景吗?

jmeter 性能测试,动态设定性能场景

平时,我们使用 jmeter 进行性能测试时,使用普通线程组,并发用户数和运行时间等场景参数都是固定写死的。运行脚本时,就按照写死在脚本中的场景来运行。

图片

 如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的接口自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386      

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1.【接口自动化】目前软件测试的市场行情以及测试人员能力标准。、2.【接口自动化】全面熟练Requests库以及底层方法调用逻辑、3.【接口自动化】接口自动化实战及正则和JsonPath提取器的应用等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a

相信,绝大多使用 jmeter 进行性能测试,性能场景设计,都类似上图,写死线程数、ramp-up 时间、持续运行时间。

这样,固然很好,直接就可以用,但是,当我们用 CLI 模式,做负载测试时,我们期望能随时更改线程数、ramp-up 时间和持续运行时间,你怎么做?

用 jmeter 的 gui 界面,修改场景中的这些参数值,然后,保存,再运行;或者,直接编辑脚本 jmx 文件,保存,再运行。

两种方法都可以,但是,有没有感觉,比较麻烦?有没有更简洁的方法呢?

在我的教学中,给大家讲过,jmeter 除了变量之外,还有‘属性’,属性是 jmeter 工具的标签,可以在 jmeter 这个工具的任何地方被使用。

jmeter 不仅支持属性文件配置静态属性,也支持,在脚本运行过程中,动态生成属性,而且,还支持,外部传入动态属性。

我们可以把场景,修改为如图:

图片

通过获取属性 pthreads,来指定线程数, 获取属性 pramp 来指定 ramp-up 时间,获取属性 pruntime 来指定持续运行时间。

这些属性,真实存在吗?后面的数字,又是什么意思呢?

首先,P 函数,在 jmeter 中,是获取属性函数,它有两个参数,第 1 个参数,是属性名,这些属性,可以事先定义的静态属性,也可以是动态生成的动态属性,图中用到的所有属性,就是事先没有定义,在运行时动态定义的属性;第 2 个参数,是属性默认值,当这个属性没有获取到值时,使用这个默认值。

什么意思?

意思是,如上图这样设计,你不传任何属性值,直接运行,就会按 1 秒钟内启动 30 个并发用户数,持续运行 60 秒的场景来运行。

图片

现在,你可以放心了吧,即便你没有传入这些属性值,这个场景,也是可以正常运行的。

那,我们在 CLI 模式下,进行性能测试时,到底应该怎么传入这些属性值呢?

首先,我们要知道,使用 CLI 模式,进行性能测试,通常有两种方式,一种,就是直接启动本地脚本运行;另外一种,就是采用分布式,指定助攻机器来运行。

  • 用 CLI 命令,直接指定本地脚本运行

CLI 命令中,使用 -J[property_name]=value 的方式,传入属性值

# 本地运行, 指定pthreads线程数属性参数值为50,pruntime持续运行时间属性参数值为70秒
jmeter.bat -n -t .\jkscript\demo_script.jmx -Jpthreads=50 -Jpruntime=70 \ 
-l test001.jtl -e -o .\jkscript\test001

图片

看,实际运行时,50 个线程数,运行 70 秒钟。

  • 用 CLI 命令,指定助攻机运行

CLI 命令中,使用 -G[property_name]=value 的方式,传入属性值


# 采用助攻机运行 指定pthreads线程数属性参数值为80,指定pruntime持续运行时长属性参数值为120秒
jmeter.bat -n -R 192.168.x.x:port -t .\jkscript\demo_script.jmx -Gpthreads=80 -Gpruntime=120 \ 
-l test002.jtl -e -o result002

图片

看,实际运行,根据命令参数设置,运行了 80 个线程数,持续运行了 120 秒钟。

有了这样一种技术之后,我们再也不用去打开脚本修改性能场景了,只需要在执行命令的时候,改下脚本参数就可以了。只是,我们要记清楚,本地直接运行,属性参数名称前用‘J’,分布式运行,属性参数名称前用‘G’。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/876443.html

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

相关文章

《图解HTTP》——HTTP协议详解

一、HTTP协议概述 HTTP是一个属于应用层的面向对象协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP…

TiDB Bot:用 Generative AI 构建企业专属的用户助手机器人

本文介绍了 PingCAP 是如何用 Generative AI 构建一个使用企业专属知识库的用户助手机器人。除了使用业界常用的基于知识库的回答方法外,还尝试使用模型在 few shot 方法下判断毒性。 最终,该机器人在用户使用后,点踩的比例低于 5%&#xff0…

安科瑞电力监控系统在某区块页岩气地面集输工程中的应用

摘要:Acrel-2000Z电力监控系统适用于35kV及以下电压等级的各类变电站,可以帮助用户掌握配电系统实时运行状态, 获取预警、告警等各类事件,实现区域的无人值守,提高监管水平。本文介绍了安科瑞电力监控系统Acrel-2000在…

elasticsearch-head 插件

1、elastic 插件说明 **Head** 是第三方提供的一款很优秀的插件,集监控、查询、配置一体的web功能系统,可以在系统中进行创建、删除索引 、文档。以及查询、配置索引等功能,深受广大开发者的喜爱 **Kopf** 是另一个第三方提供的一款很优秀…

【Java】2022 RoboCom 机器人开发者大赛-高职组(省赛)题解

7-15 您好呀 本届比赛的主题是“智能照护”,那么就请你首先为智能照护机器人写一个最简单的问候程序 —— 无论遇见谁,首先说一句“您好呀~”。 输入格式: 本题没有输入 输出格式: 在一行中输出问候语的汉语拼音 Nin Hao Ya ~…

《局外人》阅读笔记

《局外人》阅读笔记 2023年8月14日在杭州小屋读完。我看的是张雨彤编译的这本,这本书包含了两部分,第一部分是《局外人》是原版的小说故事,第二部分是《堕落》包括了六天内的自然自语,完全没看懂,写作风格突变&#xf…

Python爬虫IP代理池的建立和使用

写在前面 建立Python爬虫IP代理池可以提高爬虫的稳定性和效率,可以有效避免IP被封锁或限制访问等问题。 下面是建立Python爬虫IP代理池的详细步骤和代码实现: 1. 获取代理IP 我们可以从一些代理IP网站上获取免费或付费的代理IP,或者自己租…

【人工智能前沿弄潮】—— SAM系列:SAM自动生成物体mask

SAM自动生成物体mask 由于SAM可以高效处理提示,可以通过在图像上抽样大量的提示来生成整个图像的mask。这种方法被用来生成数据集SA-1B。 类SamAutomaticMaskGenerator实现了这个功能。它通过在图像上的网格中对单点输入提示进行抽样,从每个提示中SAM可…

报名小程序PowerActivity配置

https://github.com/zhihuliukanshan/PowerActivity/assets/100545532/9b3e2a3b-f810-4c1f-90d5-9596d99abbd3 导入代码后,需要配置的位置有: 1、miniprogram\setting\setting.js中的CLOUD_ID: module.exports {//### 环境相关 CLOUD_ID: …

【论文阅读】基于深度学习的时序预测——LTSF-Linear

系列文章链接 论文一:2020 Informer:长时序数据预测 论文二:2021 Autoformer:长序列数据预测 论文三:2022 FEDformer:长序列数据预测 论文四:2022 Non-Stationary Transformers:非平…

手把手教你如何零成本搭建网站实现内网穿透从而创建自己的数据隧道

手把手教你如何零成本搭建网站实现内网穿透从而创建自己的数据隧道 文章目录 手把手教你如何零成本搭建网站实现内网穿透从而创建自己的数据隧道前言1. 安装网站运行和发布必备软件2. 安装PHPStudy3. 安装wordpress4. 进入wordpress安装程序,进行网页编辑和设置5. 安…

使用FTP文件传输协议的潜在风险

数据(事实,数字,价值)是当今业务运行的核心要素。但是,如果数据没有得到有效的存储和传输,它们就会成为阻碍业务发展的障碍。如果企业不能及时地把数据送到合适的地方,就会造成严重的经济损失。…

Freemarker+thymeleaf应用实现打印银行小票

背景&#xff1a;最近项目里有个需求&#xff0c;需要动态配置一个模板&#xff0c;来打印各种不同银行或者其他行业的小票&#xff0c;下面小小记录一下实现过程。 关键词&#xff1a;Springboot, thymeleaf, Freemarker,html2image 一&#xff0c;引入依赖 <dependency…

汉诺塔:传说中的智慧游戏

文章目录 前言规则概述数学原理核心Java代码实现结语 前言 汉诺塔&#xff08;Hanoi Tower&#xff09;&#xff0c;又称汉诺塔游戏&#xff0c;是源自印度古老传说的经典智力游戏。这个谜题的起源被认为与印度的寺庙有关&#xff0c;是由僧侣们传承的智慧游戏。汉诺塔塔座包含…

【Java】Web应用的文件上传下载

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;本文主要梳理Web应用的文件上传下载&#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关注一下&#x1faf0;&#x1…

日撸java三百行day84-87

文章目录 说明1. 网络结构与参数1.1 单层1.2 多层管理 2. CNN网络构建2.1 构建CNN网络建构2.2 初始化卷积神经网络FullCnn对象2.3 获取数据集2.4 训练数据2.4.1 前向传播函数forward2.4.1.1 CONVOLUTION卷积层2.4.1.2 SAMPLING 池化层2.4.1.3 OUTPUT 输出层 2.4.2 反向传播函数…

【华为Datacom 综合拓扑案例—分享篇】

拓扑图 题目要求 实验要求&#xff1a; 1、PC1\PC2\PC3\PC4采用DHCP自动获取IP地址&#xff0c;SW5作为服务器&#xff0c;SW3和SW4作为中继 创建地址池ip pool huawei1和ip pool huawei2&#xff0c;租期都为2天 2、SW3与SW4做链路聚合&#xff0c;采用LACP模式。SW3作为主…

tauri-react:快速开发跨平台软件的架子,支持自定义头部和窗口阴影效果

tauri-react 一个使用 taurireacttsantd 开发跨平台软件的模板&#xff0c;支持窗口头部自定义和窗口阴影&#xff0c;不用再自己做适配了&#xff0c;拿来即用&#xff0c;非常 nice。 开原地址&#xff1a;GitHub - Sjj1024/tauri-react: 一个最基础的使用tauri和react开发…

web测试与app测试的区别

web测试与app测试的区别 首先从系统架构来看的话&#xff1a; web项目&#xff0c;一般都是b/s架构&#xff0c;基于浏览器的&#xff0c;而app则是c/s的&#xff0c;必须要有客户端。那么在系统测试测试的时候就会产生区别了。 web测试只要更新了服务器端&#xff0c;客户端…

黑客利用 Facebook 漏洞,发起网络钓鱼攻击

Bleeping Computer 网站披露&#xff0c;网络攻击者利用 Salesforce 电子邮件服务和 SMTP 服务器中的漏洞&#xff0c;针对一些特定的 Facebook 账户发起复杂的网络钓鱼活动。 据悉&#xff0c;网络攻击者利用 Salesforce 等具有良好信誉的电子邮件网关分发网络钓鱼电子邮件&am…