性能测试--Jmeter随机生成/随机选取/csv读取关键字
Jmeter随机生成/随机选取/csv读取关键字
一、随机生成关键字
随机生成关键字,需要组件:随机变量配置元件(Random Variable) 该组件的作用是生成字符+随机数字格式的字符串,并保存在变量中,以便后续使用 下面几种格式的字符串都是可以通过该组件来生成的
- 01-selenium
- selenium-01
- se001lenium
- 2017
1、步骤详情:
"""
步骤一:选择Web Test Plan模版
1、点击templates按钮
2、选择Building a Web Test Plan
3、最后点击create,完成创建。 步骤二:修改参数
1、修改测试计划名称为:Random Variable(随机生成关键字演示)
2、修改线程组线程数为:1,ramp-up period:1, 循环次数:1。
3、修改HTTP Request Defaults的web服务器名称修改为cn.bing.com
4、将HTTP请求中的http请求方法修改为L:get,路径修改成:/search,然后将断言注释
5、删除Page Returing 404节点 步骤三:随机变量配置元件
1、在测试计划上点右键,选择添加 -> Random Variable,将新添加的随机变量配置元件拖拽到最上面
2、在该配置原件中Variable Name设置为number, Output Format设置0000,Minimum Value: 2010,Maximum Value: 2020 步骤四:运行
1、新增事务控制器,将http请求都挪至事务控制器下
2、将http请求取样器的名称改为:search date${number}, 同请求一起发送参数中,q设置为${number},并勾选编码checkbox
3、点击运行按钮(快捷键ctrl+r)
"""
2、效果图:

二、随机选取关键字
场景:随机让每个请求从:python类、python开发、python函数、pythonsocket、这些关键字中随机选择1个作为搜索的关键字呢?这种随机选择内容然后进行测试的场景在性能测试中是比较常见的,因为越随机越能模拟用户的真实行为,另外一些随机内容也有助于绕过服务器可能存在的缓存机制,从而形成更均匀更真实的压力
1、步骤详情:
"""
步骤一:选择Web Test Plan模版
1、点击templates按钮
2、选择Building a Web Test Plan
3、最后点击create,完成创建。 步骤二:修改参数
1、修改测试计划名称为:Random Variable(随机生成关键字演示)
2、修改线程组线程数为:1,ramp-up period:1, 循环次数:1。
3、修改HTTP Request Defaults的web服务器名称修改为cn.bing.com
4、将HTTP请求中的http请求方法修改为L:get,路径修改成:/search,然后将断言注释
5、删除Page Returing 404节点 步骤三:添加用户定义变量配置元件
1、在测试计划上点右键,选择添加 -> 用户定义变量,将新添加的配置元件拖拽到最上面
2、在该配置原件中通过key-value的方式定义变量:如key1:爬虫,key2:函数,key3:类 步骤四:运行
1、新增事务控制器,将http请求都挪至事务控制器下
2、将http请求取样器的名称改为:search python${__V(key${__Random(1, 6)})}, 同请求一起发送参数中,q设置为python${__V(key${__Random(1, 6)})},并勾选编码checkbox,或者将http请求取样器的名称改为:search python${__RandomFromMultipleVars(key1|key2|key3|key4|key5|key6)}, 同请求一起发送参数中,q设置为python${__RandomFromMultipleVars(key1|key2|key3|key4|key5|key6)},并勾选编码checkbox
3、点击运行按钮(快捷键ctrl+r)
"""
2、效果图:

3、PS:
"""
函数${__V(key${__Random(1, 6)})}解释: 1、${__Random(1, 6)}:随机生成1-6之间的整数
2、key${__Random(1, 6)}:随机生成key1, key2, key3 ....key6中的任意1个字符串
3、${__V(key${__Random(1, 3)})}对形如key1的字符串求值。也就是不把key1当成字符串来看,而是把key1当作是1个变量,并获取这个变量的值。key1的值是我们在用户自定义变量中定义过的,也就是将刚刚从用户定义的变量值取出来
4、python${__V(key${__Random(1, 3)})}就是随机组合生成:python类、python函数、python基础中的任意一个字符串 函数${__RandomFromMultipleVars(key1|key2|key3|key4|key5|key6)}解释: 1、${__RandomFromMultipleVars(key1|key2|key3|key4|key5|key6)}:这个函数用法比上面的简单,直接从key1,key2....key6中,任意取一个key的值出来
2、python${__RandomFromMultipleVars(key1|key2|key3|key4|key5|key6)}就是随机组合生成:python类、python函数、python基础中的任意一个字符串
"""
三、csv读取关键字
由于随机数的生成的时候会耗cpu和内存,当脚本并发很大的时候,这种损耗是值得关注的,所以这个时候变量的获取从csv文件中读取更适合,实现这个读取csv的配置元件叫做:CSV Data Set Config,下面是CSV Data Set Config的常用配置项:
- Filename(文件名): 支持相对和绝对路径。相对路径是以脚本保存的路径为当前的相对路径的
- Variable Name(变量名): 有多少列数据我们就设置多少个变量,以逗号分隔。如果这一项为空,jemter会去解析csv文件的header,也就是说,如果你的csv文件是有表头的,那么你可以不设置变量名,jmeter会自动将表头的名称解析成变量名
- Allow quoted data?: 如果你的csv文件的内容里包含了分隔符,默认的分隔符是逗号,那么把这项勾选一下,用双引号将值括起来就可以了
- Sharing mode: 这个比较难理解,我们可以简单的认为这个选项就是配置jmeter怎么打开csv文件的
- All threads: 所有的虚拟用户都使用同一个csv文件
- Current thread group: 每个线程组使用一个csv文件
- Current thread: 每个线程(虚拟用户)使用一个csv文件
- Identifier: 自定义
1、新建一个keyword.csv文件,里面存放如下关键字:
python os,python sys
python random,python socket
2、步骤详情:
"""
步骤一:选择Web Test Plan模版
1、点击templates按钮
2、选择Building a Web Test Plan
3、最后点击create,完成创建。 步骤二:修改参数
1、修改测试计划名称为:Random Variable(随机生成关键字演示)
2、修改线程组线程数为:1,ramp-up period:1, 循环次数:2。
3、修改HTTP Request Defaults的web服务器名称修改为cn.bing.com
4、将HTTP请求中的http请求方法修改为L:get,路径修改成:/search,然后将断言注释
5、删除Page Returing 404节点 步骤三:添加CSV Data Set Config配置元件
1、在测试计划上点右键,选择添加 -> CSV Data Set Config,将新添加的 CSV Data Set Config配置元件拖拽到最上面
2、在该配置原件中在Fliename输入框中输入创建的keyword.csv文件路径,Variable Names输入框中添加两个值(变量名): keyword1,keyword2 步骤四:运行
1、新增事务控制器,将http请求都挪至事务控制器下
2、将http请求取样器1的名称改为:search ${keyword1}, 同请求一起发送参数中,q设置为${keyword1},并勾选编码checkbox,将http请求取样器2的名称改为:search ${keyword2}, 同请求一起发送参数中,q设置为${keyword2},并勾选编码checkbox
3、点击运行按钮(快捷键ctrl+r)
"""
3、效果图:

4、执行顺序
将线程组的循环次数改为1,执行脚本,会发现取值是第一行的csv数据
python os python sys
将线程组的循环次数改为2,执行脚本,会发现取值是第一行和第二行的csv数据
python os python sys
python random python socket
将线程组的循环次数改为3,执行脚本
python os python sys
python random python socket
python os python sys
这里就能很容易的看出,每次循环时jmeter会读一行csv文件的内容了。另外由于在CSV Data Set Config中默认选择了Recycle on EOF,当jemter读到文件结束的时候,jmeter会自动回到第1行再去读,这就是为什么循环3次的时候,第三次搜索的内容跟第一次是一样的了
性能测试--Jmeter随机生成/随机选取/csv读取关键字的更多相关文章
- PHP随机生成随机个数的字母组合示例
在很多系统环境下大家都会用到字母组合各种编码,下面推荐大家非常实用的PHP代码. $num由几个字母组合. $s字母包含大小写,可以自己调配大写还小写. <?php function makec ...
- jmeter之http请求用csv读取中文乱码
jmeter3.2版本中CSV Data Set Config从本地读取静态文件的时候,遇到中文乱码的解决方式如下: CSV Data Set Config设置 http请求数据显示乱码 把txt文档 ...
- mysql生成随机测试数据
一个demo: CREATE TABLE dept_InnoDB( deptno MEDIUMINT NOT NULL DEFAULT 0 , dname VARCHAR(20) NOT NULL ...
- 生成随机id对比
生成随机id 最近公司的项目游戏生成的随机不重复id,重复概率有点大, 代码如下: private static int id = 0; public static int serverID = 0; ...
- C#产生不重复的随机数并生成随机文件名
本文转自:http://blog.ciznx.com/post/csharprandomnumberandrandomfilename.aspx 在项目中会遇到需要批量生成文件的时候,比如 asp.n ...
- 用python随机生成数据,再插入到postgresql中
用python随机生成学生姓名,三科成绩和班级数据,再插入到postgresql中. 模块用psycopg2 random import random import psycopg2 fname=[' ...
- java生成随机字符串
学习java comparable特性时候,定义如下Student类,需要需要随机添加学生姓名以及学号和成绩,这是java如何随机生成名字,根据我的查询,我找到目前java库支持两种方法. 1. or ...
- 利用Java随机,生成随机学生数据
为模拟向数据库中大量插入学生数据(注:此处应该用PreparedStatement.batchUpdate等批处理提高效率)的情形,通过Java随机来生成学生数据. 一.要生成的学生数据 studen ...
- PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。
Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...
随机推荐
- [TJOI2014] Alice and Bob
非常好的一道思维性题目,想了很久才想出来qwq(我好笨啊) 考虑a[]数组有什么用,首先可以yy出一些性质 (设num[i]为原来第i个位置的数是什么 , 因为题目说至少有一个排列可以满足a[],所以 ...
- Java NIO.2 使用Path接口来监听文件、文件夹变化
Java7对NIO进行了大的改进,新增了许多功能: 对文件系统的访问提供了全面的支持 提供了基于异步Channel的IO 这些新增的IO功能简称为 NIO.2,依然在java.nio包下. 早期的Ja ...
- 2016北京集训测试赛(十三) Problem B: 网络战争
Solution KD tree + 最小割树
- .Net 多线程小结
1.简述 一般一个程序一个进程,代码是存在进程中的,进程本身不执行代码, 执行代码的是线程. 一般一个进程里就一个线程.(一个商店就一个老板娘.) 进程就是在内存中开辟了一个空间.代码,图片..等就 ...
- linux中at命令
名称 : linux at命令 使用权限 : 所有使用者 使用方式 : at -V [-q queue] [-f file] [-mldbv] TIME 说明 : linux at命令可以让使用者指定 ...
- CocoaAsyncSocket使用笔记
先去github的站点下载最新的包,然后先看看介绍. 写的比較具体了 https://github.com/robbiehanson/CocoaAsyncSocket/wiki/Intro_GCDAs ...
- 在cmd窗口输入命令遇到You must run this command from a command prompt with administrator privilege怎么办?
点开始菜单,找到Accessories(附件),找到Command Prompt窗口,点右键,选“run as administrator”(以管理员身份运行),之后再执行先前的命令就好了. 2017 ...
- 出现“Windows资源管理器已停止工作”错误
出现"Windows资源管理器已停止工作"错误 什么是资源管理器呢,explorer.exe进程的作用就是让我们管理计算机中的资源! 今天开电脑的时候就一直提示windows资源管 ...
- Unique Binary Search Trees I&II——给定n有多少种BST可能、DP
Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...
- UNP学习笔记(第五章 TCP客户/服务程序实例)
我们将在本章使用前一章中介绍的基本函数编写一个完整的TCP客户/服务器程序实例 这个简单得例子是执行如下步骤的一个回射服务器: TCP回射服务器程序 #include "unp.h" ...