51Testing软件测试论坛

标题: JMeter常用函数整理 [打印本页]

作者: 感悟时分    时间: 2018-4-12 15:35
标题: JMeter常用函数整理
"_csvRead"函数

  csvRead函数是从外部读取参数,csvRead函数可以从一个文件中读取多个参数。

  下面具体讲一下如何使用csvread函数:

  1.新建一个csv或者text文件,里面保存要读取的参数,每个参数间用逗号相隔。每行表示每一组参数,
每列表示每种参数:

  比如:

  admin,123

  manager,456

  2.打开Jmeter的函数助手,选择csvread函数:

  其中:

  CSV file to get values from | *alias:要读取的文件路径,应该是绝对路径

  CSV文件列号| next| *alias:从第几列开始读取,注意第一列是0

  点击生成按钮,则生成了函数,为:${__CSVRead(D:\login.txt,1)}csvread就是从login.txt文件中读取
第一列的参数。以此类推。

  3.将生成的参数拷贝到需要参数化的参数的值一项中,如果要修改要读取的参数的列,则可以直接在
参数值中修改数字而不用重新在csvread函数生成中修改。

  4.jmeter执行的时候,如果有多个线程,顺序读取第一行的数字,如果线程组多余文件中的行数,则
循环读取。

  5.利用该功能,可以实现不同参数需要不同参数值的问题,只需要在需要参数化的地方将生成的CSV
Read函数字符串粘贴过去,然后修改表示第几列的数字就可以了。

  "_ StringFromFile"函数

  功能:这个函数是从一个文件中取到一个字符串,这个函数和LoadRunner中的File变量差不多,不过
LoadRunner可以直接从数 据库中查询记录,自动生成文件,而Jmeter需要我们借助第三方工具生成文本
作用:可以用来实现参数化http请求发送的参数,使得在Jmeter运行 时参数化了的参数在每个线程读取
不同的内容。如果某个参数每次发送请求的时候不能重复才可以存储到数据库中,则用这个功能十分方便。

  使用:

  1.首先需要一个文本文件,可以手工生成,也可以通过数据库查询工具查出结果,然后拷贝到一个
文本文件中。

  2.点击Jmeter的“选项”,选择“函数助手对话框”(或者使用快捷键“Ctrl+F”),在“选择一个功能”的
下拉框中选择“_StringFromFile”

  3.设置“_StringFromFile”函数的值,具体如下:

    ● 输入文件的全路径:输入前面生成的文件的完整路径,即文件路径+文件名.扩展名(文件路
径可以写成相对路径或绝对路径,默认读取位置为/bin下)

    ● 函数名称:输入某个名称,用于存储在测试计划中其他的方式使用的值。

    ● 文件开始结束序号:第三,第四个参数是文件开始的序号,也就是文件读取的其起始行数。第
四个参数是文件的结束序号,也就是要读取文件的最后行。假如咱们生 成的文本文件有200行,如果开始
序号设置成50,结束行设置成150,那么这个函数会按顺序从第50行,一直读取到150行,如果测试的循环
次数超过了 文件行数,比如循环了102次,那么最后一次循环读取的文件内容和第一次的一样,函数会自
动循环读取。文件的起始序号和结束序号也可以不用设置,这样函数 会从第一行读取到最后一行,然后再
循环读取。

  4.注意:该函数每次读取文件中的一行,如果线程组中有多个线程,则每个线程顺序读取一行,如果有
多次循环,则每次循环顺序读取一行。


  "_Random"函数

  功能:这个函数是从某个数字段随机读取数据替换参数,可以利用在测试需要添加多条数据记录而且某
些字段需要唯一性的测试脚本中,随机生成的参数是数字

  作用:可以用来实现参数化http请求发送的参数,使得在Jmeter运行时参数化了的参数在每个线程去不
同的随机数。如果某个参数每次发送请求的时候不能重复才可以存储到数据库中,则用这个功能十分方便。

  使用:

  1.点击Jmeter的“选项”,选择“函数助手对话框”(或者使用快捷键“Ctrl+F”),在“选择一个功能”的下拉
框中选择“_Random”。

  2.配置“_Random”函数,第一个参数是“一个范围内的最小值”,即所要取的随机数的最小值,我们设置成
1;第二个参数是“一个范围内的 最大值”,即所要取的随机数的最大值,我们设置成100;第三个参数是“函
数名称”,即用于存储在测试计划中其他的方式使用的值,我们设置成 Random。设置好上面的三个参数后,
点击“生成”按钮,这样就会在对话框的最下面生成一个字符串 “${__Random(1,100,Random)}”,在我们编
写的脚本中,找到要替换的参数,把它的值换成前面生成的字符串就可以了,然后每次运行 的时候,这个参
数会变成一个1到100之间的随机数。

  "_counter"函数

  功能:这个函数是一个计数器,用于统计函数的使用次数,它从1开始,每调用这个函数一次它就会自
动加1,它有两个参数,第一个参数是布尔型的, 只能设置成“TRUE”或者“FALSE”,如果是TRUE,那么每
个用户有自己的计数器,可以用于统计每个线程歌执行了多少次。如果是FALSE,那就 使用全局计数器,可
以统计出这次测试共运行了多少次。第二个参数是“函数名称”

  格式:${__counter(FALSE,test)}

  使用:我们将“_counter”函数生成的参数复制到某个参数下面,如果为TRUE格式,则每个线程各自统
计,最大数为循环数,如果为FALSE,则所有线程一起统计,最大数为线程数乘以循环数

  "_time”函数

  功能:Jmeter运行时取当前时间到变量,利用该功能,可以将某个参数增加time函数,然后用该参数
作为查询条件查询,然后以该参数作为断 言,这样可以使得断言更精确,因为时间实时变化的,使用该方
法,需要注意的是,要先添加一个全局的用户参数,具体在断言操作中有描述。

  格式:${__time(MMddmmss,TEST)}

  使用:添加jmeter的time函数,选择选项——函数助手,然后选择__time函数

  在“ormat string for SimpleDateFormat (optional)”中输入值“MMddhhmmss”,表示取月日时分秒。

  然后,点击生成,则生成了time参数。

  "_intSum”函数

  功能:用于计算多个整数的和,可以是计算正整数和负整数的和,它有N个参数,最少有3个参数,最多不限。
最后一个参数是函数名称,前面的其它参 数是要求和的整数。这个函数在函数对话框中只显示3个参数,
如果要计算多个整数,可以通过添加参数实现,不过最后一个参数一定要是函数名称。再添加的参数 会在
函数名称后面,这个时候,需要我们手动将函数名称参数放到最后一个。

  格式:${__intSum(1,100,test)}



复制代码
  1. Jmeter消息类的功能
  2. ${__threadNum}    :得到testplan的线程数
  3. ${__machineName}  :得到主机名字
  4. ${__time(EEE\, d MMM yyyy)}  :返回一定格式的时间信息 。${__log(Message)}:写入log文件”…thread Name : Message” 。${__log(Message,OUT)}:输出到命令行。${__log(${VAR},,,VAR=)} :以 “…thread Name VAR=value”形式输出到log文件。

  5. Jmeter输入类的功能
  6. 这里Jason只介绍下${__XPath(File,//XX/XX/@XX)}  :XPath方式读了File文件的相应属性.

  7. Jmeter计算类的功能
  8. ${__counter(X)}    :自增函数,X(true/false)来控制是否分配线程来增加.
  9. ${__Random(X,Y,Z)} :随机函数,X为最小值,Y为最大值,Z为存储的变量名.

  10. Jmeter的Properties文件使用的功能类
  11. 之前Jason在Jmeter的P函数及properties文件介绍了相关的内容.

  12. Jmeter的变量操作类的功能
  13. ${__split(X,Y,Z)}   :用来分割变量用的,X为需要分割的变量或者String,Y为存储的变量名,Z为分割符.
  14. ${__V}              :的使用主要来源于变量中含变量的情况 eg. ${A${N}} 可以用${__V(A${N})} 来显示成功.
  15. ${__eval}           :主要用在对SQL的处理上,具体使用看下面的例子:
  16. * name=Smith   * column=age * table=birthdays * SQL=select ${column} from ${table} where name=’${name}’
  17. 用${__eval(${SQL})}可以得到”select age from birthdays where name=’Smith’”.

  18. Jmeter的String操作类的功能
  19. ${__regexFunction}  :对前一个响应进行正则规约提取.具体参考这里.
  20. ${__char},${__unescape},${__unescapeHtml},${__escapeHtml} :主要用来对字符的编码格式的转换的.

  21. Jmeter的脚本操作类的功能
  22. ${__javaScript(X,Y)} :主要是使用Javascript来做一些简单的操作.例如计算和字符处理等等.
  23. eg. ${__javaScript(‘${sp}’.slice(7\,99999))}
  24. ${__BeanShell(X)}     :主要是利用BeanShell来实现一些具体的功能,BeanShell具体我们可以参考BeanShell.
复制代码



作者: 海海豚    时间: 2018-4-12 16:07
谢谢分享~
作者: Miss_love    时间: 2018-4-13 09:37
支持分享
作者: qqq911    时间: 2018-4-13 15:49
感谢分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2