【测试入门02】JMeter脚本制作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34614756/article/details/87872042

一、用户自定义变量

当录制的脚本IP或者其他地方发生改变时,我们需要手动修改所有录制的步骤,但添加了用户自定义变量后,我们只需要修改变量的值。按照步骤:线程组→添加→配置元件→用户自定义变量。我们添加了一个名为IP的自定义变量,如图在这里插入图片描述
然后可以修改录制的脚本中,服务器名称或IP一栏,填写${IP},如图。这样我们就添加好了一个自定义变量。在这里插入图片描述

二、文件参数化

当做大量用户连接系统的时候,用户参数可能不一致,因此我们需要使用文件参数化的知识点,来模拟大量不同用户,请求或提交不同参数。

文件参数化有两种方式实现:

  1. 函数助手方式
    自己定义一个txt文件,内容为自己想要模拟的不同用户的参数。我的第一列代表bug名字,第二列代表提交者姓名,中间用逗号隔开
    在这里插入图片描述
    在JMeter中点击,选项→函数助手对话框→功能选择_CSVRead→按照下图红框中的格式进行填充值→点击生成→复制生成的字符串
    在这里插入图片描述
    将复制好的字符串粘贴到我们前面录制好的提交bug页面的脚本中,如图。在这里插入图片描述
    将线程组线程数修改为5,再一次运行脚本,会发现提交了5个不同的bug,而bug名称和提交者姓名是我们在txt文件中已经设定好的。在这里插入图片描述
  2. csv数据文件设置方式
    右击线程组→添加→配置元件→CSV数据文件设置→填写文件名和变量名称→在提交页面根据自己设定的变量填写,格式为${变量名}→运行脚本和第一种方法的结果相同
    在这里插入图片描述
    在这里插入图片描述

三、关联

关联的意思是上文有一些变量在下文当中被使用,比如浏览器返回的值,在后面的页面中被使用,既发生了关联关系。

loadrunner与jmeter关联的不同之处:

  1. 在loadrunner中关联函数是写在获取变量值的页面的前面;
    在jmeter中关联函数是写在要获取变量值的页面的后面
  2. 在loadrunner中关联函数是注册函数
    在jmeter中我们使用正则表达式提取器来进行关联

下面通过一个小实验来学习关联:
3. 使用badboy录制了一个在freebug上添加bug并解决bug的脚本。录制完后,在freebug上现在只有红色框的一个bug。
在这里插入图片描述
4. 在JMeter中运行该脚本,发现不能运行成功。修改重定向后,显示成功,但freebug界面只显示提交bug,并没有解决bug(与录制的步骤不一样)。在这里插入图片描述
5. 查看结果树后发现,提交bug后会返回一个bug的id值,后面根据此id值进行访问其他页面。所以从提交后,就需要一个关联函数,使得后面的步骤能跟它关联起来。
在这里插入图片描述
在http://localhost/bugfree/index.php/info/edit这一步右击→添加→后置处理器→正则表达式提取器。其中引用名称为自己定义、正则表达式根据查看结果树那里,我们设置为/bug/(.+?)';、模板为$1$在这里插入图片描述
6. 修改后面步骤中的数字id为${bugid},并把乱码的地方改正确。此时再跑一边脚本,就能的到跟录制时候一样的结果了。在这里插入图片描述

关于脚本乱码导致提交错误的解决办法

  1. 将编码设置为utf-8,将提交的参数修改正确,如图。
    在这里插入图片描述
  2. 直接修改JMeter的参数。打开JMeter安装目录D:\Program\apache-jmeter-5.0\bin\jmeter.properties 将1062行设置为sampleresult.default.encoding=UTF-8|UTF-16|ISO-8859-15|US-ASCII在这里插入图片描述
  3. 添加后置处理器。右击→添加→后置处理器→BeanShell PostProcessor→填入prev.setDataEncoding("utf-8")。如图。在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_34614756/article/details/87872042