JMeter性能测试基础 (2) - 变量的使用
在使用JMeter进行性能测试时,一般情况下要保证样本容量尽可能大,这样才能得到一个比较合理的结果。也就是说,我们不能只对同一个URL进行多次访问,而是要对统一模块下尽可能多的URL进行访问,以取得相对准确的一个结果。举个例子,如果对博客网站进行性能测试,不能只对同一篇文章的URL做性能测试,而是要覆盖尽可能多的文章的URL。本篇文章主要说明一下如何使用变量对这种多个URL的访问做配置。
1.使用JMeter内置变量
通过在JMeter中进行变量配置,实现多URL访问
1)建立“测试计划”及“线程组”,设置线程数为10
2)在“线程组”下,建立一个“ForEach控制器”的逻辑控制器
3)设置ForEach控制器
其中,
输入变量前缀:我们对做ForEach循环时所输入的变量的前缀
Start index for loop (exclusive):从哪个序号的变量开始循环(不包含该序号)
End index for loop (inclusive):从哪个序号的变量结束循环(包含该序号)
输出变量名称:输入变量以什么名称在Http请求中进行调用
Add “_” before number:在前缀和序号之间是否用下划线“_”进行连接
4)设置变量
在ForEach控制器下,添加一个“用户定义的变量”的配置元件
添加两个我们要访问的url。这里我们以chinadjango.com的Django入门文章为例,我们要访问以下两篇文章的URL
http://chinadjango.com/docs/intro/tutorial01/
http://chinadjango.com/docs/intro/tutorial02/
由于域名可以进行统一配置,在JMeter中,我们可以只配置URL的后半部分,这里进行配置如下
5)设置请求
在“ForEach控制器”下,添加一个“HTTP请求”的Sampler
设置服务器域名为chinadjango.com,路径为${returnUrl},其中${returnUrl}就是我们在之前的“用户定义变量”中的输出,这里作为发起HTTP请求时路径的输入进行使用
6)添加监听器并进行测试
在线程组下,添加一个“查看结果树”的监听器,运行测试,在“查看结果树”中检查测试数据。我们可以看到所有请求的性能数据。
查看HTTP请求的“请求”,可以看到每个访问对应的URL
2.使用数据文件
1)建立“测试计划”及“线程组”
2)编写数据文件url.txt,在其中编写我们要访问的url地址如下:
docs/intro/tutorial01/
docs/intro/tutorial02/
docs/intro/tutorial03/
docs/intro/tutorial04/
docs/intro/tutorial05/
3)在工具栏中,打开“选项”-“函数助手对话框”
4)选择“_StringFromFile”函数,设置文件路径,点击“生成”按钮,生成变量函数,赋值函数字符串,在下一步进行使用
5)在“线程组”下,建立一个“HTTP请求”的Sampler,设置服务器域名及路径,服务器域名使用chinadjango.com,路径处,填写我们刚刚获得的从文件中读取变量数据的函数 ${_StringFromFile(D:\urls.txt,,,)}
6)添加监听器并进行测试
在线程组下,添加一个“查看结果树”的监听器,运行测试,在“查看结果树”中检查测试数据。
这里需要注意的是,
在使用ForEach控制器时,线程组数量为10,在10个线程中,均会对我们设置的URL变量做访问,也就是对我们的变量做了总共20次访问;
而在使用外部文件时,线程组数为10,每个线程组只从文件中取了一条数据做访问,虽然我们的数据文件中有5条数据,但是总共做了10次访问,每个URL访问了2次。
使用ForEach控制器和使用外部文件是比较常用的两种变量配置方式。在测试过程中, Http有时还需要附带一些其它参数。下一篇文章,将对如何在HTTP请求中配置参数做介绍。
JMeter性能测试基础 (2) - 变量的使用的更多相关文章
- JMeter性能测试基础 (1) - 安装及简单使用
Apache JMeter是一款开源性能测试工具,全部功能使用Java编写,可用于进行性能测试.JMeter最初被设计用于Web应用测试,之后被扩展至多个测试领域. Apache jmeter 可以用 ...
- JMeter性能测试基础 (3) - 使用参数文件做搜索引擎性能对比
本篇文章主要对如何在JMeter中进行URL的参数进行配置进行介绍,通过CSV文件配置参数数据,对baidu.sogou.haosou进行搜索性能对比测试. 1.建立测试计划.线程组,并在线程组下添加 ...
- JMeter性能测试基础 (4)-使用JMeter录制测试脚本
在进行压力测试时,由于很多web页面包含了Ajax异步请求等内容,为模拟用户真实输入,除了对html的访问外,还需要将其它的访问考虑入内,这时最好的办法就是对实际访问过程中的所有请求进行录制. 例如, ...
- Jmeter性能测试基础
压力测试 压力测试分两种场景:一种是单场景,压一个接口的:第二种是混合场景,多个有关联的接口.压测时间,一般场景都运行10-15分钟.如果是疲劳测试,可以压一天或一周,根据实际情况来定. 压测任务 ...
- JMeter性能测试的基础知识和个人理解
JMeter性能测试的基础知识和个人理解 1. JMeter的简介 JMeter是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常 ...
- 『动善时』JMeter基础 — 23、JMeter中使用“用户自定义变量”实现参数化
目录 1.用户自定义变量介绍 2.使用"用户自定义变量"实现参数化 (1)测试计划内包含的元件 (2)数据文件内容 (3)测试计划界面内容 (4)线程组元件内容 (5)CSV数据文 ...
- Jmeter学习一:Jmeter性能测试环境搭建(Windows下)
最近刚开始接触Jmeter性能测试,现总结环境搭建如下: 一.windows安装JDK步骤与环境变量配置: 1.先将下载的JDK安装到其默认目录:C:\Program Files\Java\jdk1. ...
- Jmeter性能测试
Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter搞定的 ...
- JMeter性能测试,完整入门篇
1. Jmeter简介 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件.相比Loadrunner而言,JMeter小巧轻便且免费,也越来越流行成为了主流的性能测试工具 ...
随机推荐
- TMS320VC5509的USB口通信
1. 硬件如下,直接连接5509A的USB口即可 2. 测试如下,选择完器件型号之后会多出一个cmd文件,需要删除 3. 运行程序,电脑会出现USB安装驱动的提示 不过安装驱动遇到问题,应该是我电脑是 ...
- 2_C语言中的数据类型 (八)运算符
1 运算符表达式和语句 1.1 基本运算符 1.1.1 = 数据对象:泛指数据在内存的存储区域 左值:表示可以被更改的数据对象 右值:能赋给左值的量 1 ...
- 传统路由和OVS区别
本文主要描述了一种将三层路由变成二层交换转发(以及二层转发变成三层路由)的实现方式,以应对OVS(OpenFlow)跨网段路由复杂的问题:当然技术本身是客观的,具体应用还要看场景. 随着SDN技术不断 ...
- [转载]如何用Visual Studio制作安装包
原文地址:如何用Visual Studio制作安装包作者:蓝羽幽游 环境:Microsoft Visual Studio 2010 语言:C# 构架:.NET Framework 2.0 解决方案名称 ...
- shell命令注意点
unset 不能删除readonly的变量 实例: #!/bin/bash name="lalala" readonly name unset name 执行结果: line5:u ...
- 巧用 Python 找工作(资料在文末)
前言 近年来 Python 之火大家都有感而知,那亲们知道北京的 Python 开发岗位.运维开发岗位招聘地域都是如何分布的吗?薪水如何?是否有前景等等,这些数据呢直接通过招聘信息来了解到企业用人是最 ...
- chrome JS关闭当前页无效问题
如果没有父窗口,JS中 window.opener = null; window.open("", "_self"); window.close(); 对chr ...
- How to use the windows active directory to authenticate user via logon form 如何自定义权限系统,使用 active directory验证用户登录
https://www.devexpress.com/Support/Center/Question/Details/Q345615/how-to-use-the-windows-active-dir ...
- kali 2018.1安装教程
00x01 摘要 Kali-linux系统,渗透测试人员的利器,其官网自称 OurMost Advanced Penetration Testing Distribution, Ever. 永远是最 ...
- Netty源码分析第2章(NioEventLoop)---->第2节: NioEventLoopGroup之NioEventLoop的创建
Netty源码分析第二章: NioEventLoop 第二节: NioEventLoopGroup之NioEventLoop的创建 回到上一小节的MultithreadEventExecutorG ...