在使用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) - 变量的使用的更多相关文章

  1. JMeter性能测试基础 (1) - 安装及简单使用

    Apache JMeter是一款开源性能测试工具,全部功能使用Java编写,可用于进行性能测试.JMeter最初被设计用于Web应用测试,之后被扩展至多个测试领域. Apache jmeter 可以用 ...

  2. JMeter性能测试基础 (3) - 使用参数文件做搜索引擎性能对比

    本篇文章主要对如何在JMeter中进行URL的参数进行配置进行介绍,通过CSV文件配置参数数据,对baidu.sogou.haosou进行搜索性能对比测试. 1.建立测试计划.线程组,并在线程组下添加 ...

  3. JMeter性能测试基础 (4)-使用JMeter录制测试脚本

    在进行压力测试时,由于很多web页面包含了Ajax异步请求等内容,为模拟用户真实输入,除了对html的访问外,还需要将其它的访问考虑入内,这时最好的办法就是对实际访问过程中的所有请求进行录制. 例如, ...

  4. Jmeter性能测试基础

    压力测试   压力测试分两种场景:一种是单场景,压一个接口的:第二种是混合场景,多个有关联的接口.压测时间,一般场景都运行10-15分钟.如果是疲劳测试,可以压一天或一周,根据实际情况来定. 压测任务 ...

  5. JMeter性能测试的基础知识和个人理解

    JMeter性能测试的基础知识和个人理解 1. JMeter的简介   JMeter是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常 ...

  6. 『动善时』JMeter基础 — 23、JMeter中使用“用户自定义变量”实现参数化

    目录 1.用户自定义变量介绍 2.使用"用户自定义变量"实现参数化 (1)测试计划内包含的元件 (2)数据文件内容 (3)测试计划界面内容 (4)线程组元件内容 (5)CSV数据文 ...

  7. Jmeter学习一:Jmeter性能测试环境搭建(Windows下)

    最近刚开始接触Jmeter性能测试,现总结环境搭建如下: 一.windows安装JDK步骤与环境变量配置: 1.先将下载的JDK安装到其默认目录:C:\Program Files\Java\jdk1. ...

  8. Jmeter性能测试

    Jmeter性能测试 入门 Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter搞定的 ...

  9. JMeter性能测试,完整入门篇

    1. Jmeter简介 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件.相比Loadrunner而言,JMeter小巧轻便且免费,也越来越流行成为了主流的性能测试工具 ...

随机推荐

  1. 一个将当前目录下HEX文件的第一行数据删除的程序

    为什么要写这样一个函数 在使用SoftConsole开发M3程序时,生成的hex文件,必须要把第一行数据删除,才能在Libero中使用,所以写了这个小工具,这是2.0版本了,第一版是直接删除第一行数据 ...

  2. USACO Section1.3

    section1.2主要包括5道题和1个编程知识介绍.下面对这6部分内容进行学习. Complete Search 这个翻译成枚举搜索或者穷举搜索.主要用于当写代码时间不够用而且不用考虑程序的效率问题 ...

  3. spring整合ehcache注解实现查询缓存,并实现实时缓存更新或删除

    转载: http://www.importnew.com/23358.html 写在前面:上一篇博客写了spring cache和ehcache的基本介绍,个人建议先把这些最基本的知识了解了才能对今天 ...

  4. 【轮子狂魔】抛弃IIS,向天借个HttpListener - 基础篇(附带源码)

    这一次我们要玩什么? 先声明一下,由于这篇是基础篇主要是通过这篇文章让大家对使用HttpListener响应Http请求有个大概了解,所以正式的花样轮子在下一篇推出,敬请期待 ^_^ 嗯哼,还有,我标 ...

  5. 利用VBS脚本实现Telnet自动连接

    把以下代码保存为*.vbs文件,替换IP.用户名.密码. Dim objShell Set objShell = CreateObject("Wscript.Shell") obj ...

  6. Android Studio|IntelliJ IDEA 上传代码到码云

    码云 新建项目 Android Studio|IntelliJ IDEA 然后仓库就创建好了 此时左方文件应显示为红色 添加代码到git仓库 提交代码到git仓库 push等待被拒绝 拉取README ...

  7. Window10家庭版启动hyper-v虚拟机组件

    在安装docker的时候发现如果直接使用docker for windows,对系统的要求是window10专业版或企业版,家庭版本身没有hyper-v,不能支持 虚拟化.但是后来我在搜索过程中发现, ...

  8. 下一个时代的发展架构竟然是它!FaaaaaaaaS到底是个啥?

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云serverless团队发表于云+社区专栏 导读:2018年7月6 - 7日,一年一度的技术圈盛会ArchSummit全球架构师 ...

  9. 工程能力之C4模型

    概述 刚在InfoQ上看到一篇介绍C4Model的文章,觉得这个模型设计的很赞,很有指导意义,做个简单的记录. Why,为什么需要架构图? ThoughtWorks中国 文章中有几句话我觉得很有道理, ...

  10. Java 内存模型_2

    title: Java 内存模型_2 date: 2017-01-28 02:04:06 tags: [JMM] categories: [Programming,Java] --- Why 理解 J ...