Jmeter变量参数化及函数应用
我们在使用Jmeter录制脚本后,经常会对已录制的脚本进行修改,需要把一些参数使用一些变量替代,Jmeter是支持这些功能的,不过是通过函数实现的。下面举一个简单的例子,使用随机数替代一个参数:
打开录制好的脚本,点击Jmeter的“选项”,选择“函数助手对话框”(或者使用快捷键“Ctrl+F”),在“选择一个功能”的下拉框中选择 “_Random”,然后在“函数参赛”中会出现三个参数有用户来设置,第一个参数是“一个范围内的最小值”,即所要取的随机数的最小值,我们设置成1;第二个参数是“一个范围内的最大值”,即所要取的随机数的最大值,我们设置成100;第三个参数是“函数名称”,即用于存储在测试计划中其他的方式使用的值,我们设置成Random。设置好上面的三个参数后,点击“生成”按钮,这样就会在对话框的最下面生成一个字符串 “${__Random(1,100,Random)}”,然后我们找到要替换的参数,把它的值换成前面生成的字符串就可以了,然后每次运行的时候,这个参数会变成一个1到100之间的随机数。
我们在上个例子中可以看到Jmeter提供了很多函数,能满足咱们在测试中的大多数需要,下面来讨论几个常用的函数。
_StringFromFile,这个函数是从一个文件中取到一个字符串,这个函数和LoadRunner中的File变量差不多,不过LoadRunner可以直接从数据库中查询记录,自动生成文件,而Jmeter需要我们借助第三方工具生成文本文件(我们可以通过数据库查询工具查出结果,然后拷贝到一个文本文件中,这样就是 40万人民币的软件和免费软件之间的差别,嘿嘿)。生成文本文件后就可以设置这个函数的参数了,参数分别是“输入文件的全路径”,“函数名称”,“Start file sequence number”,Final file sequence number”。第一个参数就是咱们前面生成的文件的完整路径,即文件路径+文件名.扩展名(文件路径可以写成相对路径或绝对路径)。第二个参数是用于存储在测试计划中其他的方式使用的值(其实我也一直不明白这个参数的用处,不设置有些函数也能正常使用,不过最好还是随便设置一下吧,因为还有一些函数不能缺省)。第三和第四个参数的用途有两个,如果一起使用可以从多个文件中读取字符串。如果只使用第四个参数则表示对同一个文件读取多次。
例如:${_StringFromFile(test#'.'txt,,1,2)} 可以读取test1.txt和test2.txt,多线程使用时,从test1的第一条记录开始读取,test1的记录读取完成后,自动从test2.txt的第一行继续读取。
${_StringFromFile(test1.txt,,,2)} 读取test.txt两次,多线程使用时,从test1的第一条记录开始读取,test1的记录读取完成后,再次返回test1.txt的第一行继续读取。以上两种情况时,如果文件中数据读取完成,则循环会自动终止。
_counter,这个函数是一个计数器,用于统计函数的使用次数,它从1开始,每调用这个函数一次它就会自动加1,它有两个参数,第一个参数是布尔型的,只能设置成“TRUE”或者“FALSE”,如果是TRUE,那么每个用户有自己的计数器,可以用于统计每个线程歌执行了多少次。如果是FALSE,那就使用全局计数器,可以统计出这次测试共运行了多少次。第二个参数是“函数名称”。
_javaScript,我个人认为这个函数是最好用的函数,通过它能使用JavaScript所支持的所有函数,比如当前的系统日期,系统时间等,它的参数也有两个,第一个是“JavaScript. expression to evaluate”,这个参数是JavaScript的语句表达式,我们可以输入任何的JavaScript支持语句,调用JavaScript自带的函数(可惜不能使用自己写的JavaScript函数,有点遗憾)。第二个参数是“函数名称”。
_threadNum,这个函数没有任何参数,它用于得到当前运行的线程编号。
_machineName,这个函数用于返回当前的主机名,有一个参数,是“函数名称”。
_log,用于记录日志,它可以将一条信息记录到指定的日志文件中,并返回所记录的信息。它有三个参数。第一个是“String to be logged”,即要记录到日志文件中的内容。第二个是“Log level”,即日志的等级,这个参数只能设置成OUT, ERR, DEBUG, INFO,WARN or ERROR,如果这个参数不设置,函数默认为“INFO”。第三个参数是“Throwable text”,即要抛出的文本信息,如果不设置,函数会抛出Java自定义的异常。
_logn,这个函数和_log的功能一样,参数和使用都完全相同,唯一个差别在于_log会返回记录到日志中的信息,而_logn不返回任何信息。
_intSum,用于计算多个整数的和,可以是计算正整数和负整数的和,它有N个参数,最少有3个参数,最多不限。最后一个参数是函数名称,前面的其它参数是要求和的整数。这个函数在函数对话框中只显示3个参数,如果要计算多个整数,可以通过添加参数实现,不过最后一个参数一定是函数名称。
除了上面介绍的几个函数外,Jmeter还支持了更多更强大的函数,比如_BeanShell,_regexFunction等,如果有需要设置更复杂场景的朋友可以仔细研究一下,
分享到:
相关推荐
Jmeter参数化方法汇总教程测试脚本: 1、Jmeter参数化之用户变量 2、Jmeter参数化之用户动态设置变量 3、Jmeter参数化之函数助手 4、Jmeter参数化之CSV配置元件 5、Jmeter参数化之从数据库读取数据
使用JMeter函数助手可以方便地生成参数化函数。例如,使用`__CSVRead`函数从CSV文件中读取数据: - **函数参数**: - 第一个参数:指定文件路径。 - 第二个参数:指定要读取的列号(从0开始计数)。 #### 八、...
4. **生成参数化函数**:输入所需的列索引,比如 0 来获取第一列数据(通常是用户名),然后点击“生成”按钮,复制生成的函数。 5. **应用到请求参数**:打开登录采样器,找到需要参数化的字段(如用户名),将生成...
使用函数助手对话框可以实现一些常见的参数化函数,例如 ${__machineIP()} 函数、${__Random()} 函数、${__RandomDate()} 函数等。 使用CSV文件可以实现参数化,用户可以通过右击线程组--添加--配置文件--csv数据...
以下是JMeter常用的三种参数化方法的详细说明: 1. **变量设置方法**: - 在线程组下,右键选择请求场景,然后添加“前置处理器” -> “用户参数”。在这个用户参数配置中,你可以增加变量并为其设置参数。例如,...
本文将详细介绍 JMeter 的参数化方法,包括从文件中读取数据、用户变量和函数读取数据三种方法。 从文件中读取数据 JMeter 提供了 CSV Data Set Config 配置元件,用于从 CSV 文件中读取数据。这种方法可以将测试...
本文将深入探讨“jmeter 参数脚本演示”这一主题,讲解如何利用JMeter进行参数化测试,包括读取CSV数据、动态设置全局变量以及获取线程数等关键操作。 首先,参数化是性能测试中的一个重要概念,它允许我们将测试...
在JMeter中,参数化可以通过多种方式实现,包括用户定义的变量元件、用户参数元件、函数助手、CSV数据文件设置元件等。 用户定义的变量元件 用户定义的变量元件是JMeter中的一种参数化方式。它允许用户定义变量,...
此外,JMeter还支持使用函数和变量,如__Random()、__threadNum()等,这些内置函数可以根据需要生成动态数据,进一步丰富了参数化的可能性。在“参数化Sample.jmx”脚本中,你可以找到这些函数的实际使用示例,通过...
为了模拟更真实的用户行为,需要对测试数据进行参数化,JMeter支持多种参数化的形式,包括全局变量和局部变量的使用。 ### 常用函数和Beanshell脚本 JMeter提供了丰富的内置函数,用于在测试中生成动态数据。此外...
3. 变量和参数:使用JMeter的变量和参数功能来动态传递数据,增强测试的可复用性。 4. 错误处理:通过设置断言和响应断言,捕获并处理错误情况,确保测试的健壮性。 五、测试执行与结果分析 1. 脚本预览和调试:在...
这份文档将讲解如何利用JMeter的CSV Data Set Config、函数和预置变量来实现参数化。 7. **Jmeter接口测试-数据分离.docx**: 当测试涉及复杂请求,如JSON或XML响应时,数据分离至关重要。此文档将说明如何使用...
JMeter支持通过命令行参数来动态更改测试计划中定义的参数,这对于自动化测试和集成测试过程来说尤为关键。接下来,我们将详细解读如何通过JMeter命令行执行脚本并设置动态参数。 首先,JMeter在执行测试计划之前,...
4. **参数化和断言**:使用变量和函数来参数化请求,添加断言以验证响应是否符合预期。 5. **运行和分析结果**:执行测试计划并分析结果,根据性能指标调整测试设置或优化应用。 总之,Apache JMeter是进行性能测试...
JMeter 之参数化用于解决参数化问题,可以通过函数助手获取参数值、利用配置元件(CSV Data Set Config)和用户自定义变量来实现参数化。 JMeter 之关联 JMeter 之关联用于解决请求之间的依赖关系问题,可以通过...
4. **函数和变量**:JMeter支持使用内置函数和用户定义的变量,这使得测试脚本更灵活,可以实现动态数据生成和参数化。 5. **断言**:通过断言功能,JMeter可以验证服务器返回的结果是否符合预期,确保服务的正确性...