一、__StringFromFile
  功能介绍:
  从文件中读取一行数据,所有线程共享行数,依次读取,默认路径为$JMETER_HOME/bin/
  ${__StringFromFile(参数 1,参数 2,参数 3,参数 4)}
  参数 1:文件路径(包括文件名),必选,可输入 java.text.DecimalFormat 的格式
  ①pin#'.'dat,表示匹配文件 pin1.dat,pin2.dat……pin999.dat
  ②pin000'.'dat,表示匹配文件 pin001.dat,pin002.dat……pin999.dat
  ③pin'.'dat# -> pin.dat1, ... pin.dat9 ... pin.dat999  
  参数 2:注册变量名,可选
  参数 3:起始序列号,可选
  参数 4:结束序列号,可选,若起始序列号为空,表示该文件循环计数的次数
  1.1  单文件顺序循环读取
  
   
  

  结果解释:

  1、当线程迭代次数大于该文件内行数时,回循环重复读取文件内容

  2、一个线程读取完毕,接下一个线程重新读取文件,可以理解为读取文件时数据是线程独立的。

  1.2  多文件顺序读取

  前提:这里准备了3个文件,依次取 test1.txt,test2.txt,test3.txt 三个文件,每个文件3行数据一共9行,文件内容如下:

  

  1.2.1 情况一:采样迭代次数小于所有文件总行数

  

  

  结果解释:

  1、预设采样总迭代次数小于所有文件总行数,采样结果以迭代次数为准。

  2、所有线程逐个迭代,一个线程迭代完成后,下一个线程继续迭代读取剩下的文件内容。

  1.2.2 情况二:采样迭代次数大于所有文件总行数

  

  

  

  结果解释:

   1、预设采样总迭代次数大于所有文件总行数,采样结果以文件行数为准。

   2、这里有9行,但实际读取结果为8行的原因是Jmeter自动将第一个文件的第一行忽略了,不影响测试结果。

   3、印证了场景一结论第三条,线程一6次迭代完成后,线程二迭代开始并迭代剩下的2条数据,没有发生重复迭代。

  1.3  单文件循环读取,取 test1.txt 文件中的下一行,并循环 10 次
  1.3.1 文件总行数小于线程总迭代次数

  

   

   

   结果解释:

   1、当文件总行数小于线程总迭代次数时,以总行数为准

   2、印证了场景一结论第三条,线程一20次迭代完成后,线程二迭代开始并迭代剩下的9条数据,没有发生重复迭代。

   1.3.2 文件总行数大于线程总迭代次数

  

   

   

   结果解释:

   1、文件总行数大于线程总迭代次数时,以总迭代次数为准

   2、印证了场景一结论第三条,线程一10次迭代完成后,线程二继续迭代直到迭代完成,没有发生重复迭代。

二、__StringToFile

  功能介绍:
  将字符串写入文件,包括覆盖和追加两种方式,换行需要加上\n
  ${__StringToFile(参数 1,参数 2,参数 3,参数 4)}
  参数 1:文件路径(包括文件名),必选
  参数 2:要写入的内容
  参数 3:true 表示追加,false 表示覆盖,默认为追加
  参数 4:文件为编码,默认为 utf-8
  

通过循环控制器循环写入:

  

  注意:如路径下不存在文件,文件将会被创建。

三、__FileToString

  功能介绍:
  将文件转换为字符串,默认路径为$JMETER_HOME/bin/
  ${__FileToString(参数 1,参数 2,参数 3)}
  参数 1:文件路径(包括文件名),必选
  参数 2:文件编码,如:utf-8,可选
  参数 3:存储的变量名,可选
  

  

四、__CSVRead

  功能介绍:
  将文件转换为字符串,默认路径为$JMETER_HOME/bin/
  ${__CSVRead(参数 1,参数 2)}
  参数 1:文件路径(包括文件名),必选
  参数 2:第几列,必选
  

  

  结果解释:

  采用${__CSVRead(wade/18.5/csv.txt,0)}${__CSVRead(wade/18.5/csv.txt,next)} 的方式实现自动获取下一行数据,搭配循环。

  

最新文章

  1. C语言基础(7)-float,double,long double类型
  2. IO复用与select函数
  3. Redundant Paths-POJ3177(并查集+双连通分量)
  4. 【61测试】【dp】【二分】【前缀和】【树剖】
  5. 基于TP框架的ThinkCMF,控制器display方法源码分析
  6. zabbix常用的几个key
  7. iTween基础之Color(变换颜色)
  8. 添加打印机的时候怎样说windows没法连接到打印机毛病为0x00000002
  9. 解决弹出的窗口window.open会被浏览器阻止的问题(自定义open方法)
  10. [置顶] MapReduce 编程之 倒排索引
  11. python正则表达式入门
  12. 我的开源框架之Accordion控件
  13. Hadoop学习之Hadoop集群搭建
  14. Async和Await进行异步编程
  15. 网站开发中使用javascript获取浏览器滚动条宽度
  16. Dev_GridView自定义表格
  17. Redis和mysql数据怎么保持数据一致的?
  18. 查看MYSQL数据表锁定
  19. 洛谷 P4592: bzoj 5338: [TJOI2018]异或
  20. struts2 jsp的session取值 if判断

热门文章

  1. .Net Core(.Net6)创建grpc
  2. SRS视频流服务器初试
  3. TEB学习
  4. 【ASP.NET Core】标记帮助器——抽象层
  5. Blender插件:水滴生成器(Droplet Generator)
  6. OpenLayers点聚合
  7. 一文搞懂│http 和 https 的通信过程及区别
  8. 【故障公告】Kubernetes 集群节点宕机造成博客站点故障
  9. Python (进阶 第二部)
  10. 微信小程序tabBar图标显示失败问题