Jmeter中随机读取测试文件的内容

性能测试中需要测试这么一个场景:测试数据是一堆的地址,存储在一个文件中。为了模仿真实的用户访问场景,需要从这个文件中每次随机选取地址,拼接在一个固定的域名后发送出去。看了半天jmeter的帮助文档,也在网上搜了半天,用jmeter的Groovy脚本解决:

import java.text.*;
import java.io.*;
import java.util.*;

String csvTest = "test_data.csv";
//csvDir = vars.get("fileLocation");
String csvDir = "./";
ArrayList strList = new ArrayList();

try {
  File file = new File(csvDir + csvTest);

  if (!file.exists()) {
    throw new Exception ("ERROR: file " + csvTest + " not found in " + csvDir + " directory.");
  }

  BufferedReader bufRdr = new BufferedReader(new FileReader(file));
  String line = null;

  while((line = bufRdr.readLine()) != null) {
    strList.add(line);
  }

  bufRdr.close();

  Random rnd = new java.util.Random();
  log.info(strList.get(rnd.nextInt(strList.size())));
  vars.put("data",strList.get(rnd.nextInt(strList.size())));
}
catch (Exception ex) {
  IsSuccess = false;
  log.error(ex.getMessage());
  System.err.println(ex.getMessage());
}

这样每次发请求时jmeter会随机读取“test_data.csv”这个文件中的内容,并存为data变量,在http request中设置Send Parameter With the Request,用${data}的方式把这个变量取出来就好了。

时间: 2024-10-12 13:33:14

Jmeter中随机读取测试文件的内容的相关文章

Oracle如何实现从特定组合中随机读取值

在这里,我们会用到DBMS_RANDOM包和CASE WHEN语句,思路如下: 一.利用DBMS_RANDOM.RANDOM函数随机生成数值,然后对数值进行取模,如果我们要在10个元素中随机读取的话,那我们需要对10进行取模. 二.再将取模后的值利用CASE WHEN语句与元素进行关联. 譬如,我有一个组合,里面包含“北京”,“上海”,“广州”,“深圳”,“武汉”五个元素,想从这五个元素中随机读取值来填充表的某个字段. 首先,创建测试表 SQL> create table test(loc va

C#读取excel文件的内容(使用DataSet)

C#读取Excel文件的内容,通过OLEDB来连接,关键是连接的路径,如:string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties=Excel 12.0;";      连接的路径涉及3方面: 1. Provider:使用的是OLEDB连接,但是这个技术会不时更新,使用前查询最新的版本: 2. Data Source: 就是

PHP读取txt文件的内容并赋值给数组的代码

使用file_get_contents()获取txt文件的内容,然后通过explode()把获得的字符串转化为数组. 获得数组长度可以使用count()函数 <?php $file = 'keywords.txt'; $content = file_get_contents($file); //echo $content; $array = explode("\r\n", $content); //print_r($array); for($i=0; $i<count($a

linux中如何清空一个文件的内容

方法1: echo "" > /www.jbxue.com /xxx.log 方法2: echo "" >> /www.jbxue.com /xxx.log 方法3: 此命令能与“echo > /var/log/big.log”达到相同效果,不过,命令执行后,需要用“Ctrl + d”结束 方法4: clear > /opt/log/big.log 此命令会把big.log文件内容清空,而不删除文件 方法5: 同样的效果,用true.f

前台JS(type=‘file’)读取本地文件的内容,兼容各种浏览器

[自己测了下,能兼容各种浏览器,但是读取中文会出现乱码.自己的解决方法是用notepad++把txt文件编码改为utf-8(应该是和浏览器编码保持一致吧?..)] 原文  http://blog.csdn.net/xwq1012/article/details/41941895 参考如下: http://blog.csdn.net/lejuo/article/details/11528243 前台JS读取本地文件内容,兼容IE7.8.9.10 FF Chrome等各种版本,纠结了好长时间,终于找

PHP读取csv文件的内容

一次性读取csv文件内所有行的数据 <?php  $file = fopen('windows_2011_s.csv','r');  while ($data = fgetcsv($file)) { //每次读取CSV里面的一行内容 //print_r($data); //此为一个数组,要获得每一个数据,访问数组下标即可 $goods_list[] = $data;  } //print_r($goods_list); /* foreach ($goods_list as $arr){     

java的JFileChooser上传一个Excel文件并读取该文件的内容

一.描述 无论是jsp中还是swing中的上传文件组件都可能上传一个Excel文件并且按行读取文件的记录,读取记录后可以提供数据的显示功能,也可以构造sql语句进行数据库中数据的查询等. 例如我们上传一份用户名单,其中包括用户姓名,性别和身份证号,我们将用户真实姓名加上身份证后四位作为用户账号查询数据库中是否有该用户信息,上传的表格如下: 二.所需工具 java要调用Excel并且读取Excel文件中的数据,就必须使用jxl.jar札包,所以先获取该札包然后引入到java项目中. 该札包的免费下

JMeter中BeanShell实现写入文件

1.首先F:\test.txt文件为空 2.定义JMeter参数 3.编写BeanShell代码 public static void execParam() { String getdata = vars.get("v1"); //vars.get("v1"):意思是获取JMeter的参数值,然后将获取的值赋值给getdata变量 //用以下方式也可以://String getdata = "${v1}"; //String getdata =

python中 .write 无法向文件写入内容

问题代码如下 links = open("new") out = open("out.txt","w+") for link in links: out.write(link+"\n") 问题原因: 当没有使用flush()或close()时,要写入的内容依然在缓冲区中,没有写入文件,如果中途终止,文件里就会没有内容. 解决方法: links = open("new") out = open("o