很久没有使用 JMeter 了,今天再看一下,发现了新的用法,很好用,能提高工作效率,在这里分享一下。
如上图所示,我们有时候需要在一个线程组内同时进行多个 HTTP 请求(比如 HTTP 请求1、HTTP 请求2、HTTP 请求3),在这些请求中有一些共同的参数,比如“服务器名称”、“端口号”、“HTTP 请求方法”、“路径”等等。如上图我们有三个请求,如果输入三次完全相同的参数,会显得很繁琐,既然都一样,那么我们可不可以只写一次,三次请求共用这些参数呢?其实是可以的。
我们可以使用【配置元件】中的【HTTP 请求默认值】,将这些相同的参数全都写在“HTTP 请求默认值”里,这样在其作用域下的 HTTP 请求都会使用默认的 HTTP 请求。如果需要修改,我们也只需要修改这一处就可以了。
那么,问题来了。这样写,就要求我们所有的请求都是一样的,万一有一个请求不一样呢,比如“请求方法”不同,或者“路径”不同等等。而我们又想一次请求,怎么办呢?
对于多个相同点中的“另类”我们需要特殊对待。比如说,上图中的“HTTP 请求3”中的“路径”和其他两个不同,那么我们就在“HTTP 请求3”的路径中输入该请求正确的路径就可以了。
这里我们要思考一个问题?
问:什么时候“HTTP 请求默认值”的参数有效,什么时候请求本身自己的参数生效呢?
答:当请求没有输入请求参数时,默认值生效;当请求输入了自己的参数值,那么此时不在使用默认值,而使用请求参数自己的值。
通俗点说就是“当我自己没有的时候我用默认值,当我有的时候我就用我自己的值”。
下面我们介绍另一个超实用的配置元件:用户定义的变量。
很多请求中我们都需要传入相应的参数(parameters),比如上图所示的三个 HTTP 请求,我们都需要传入参数分别为:{key,value1}、{key,value2}、{key,value3}。如果我们有10个或者更多个请求,我们需要对每一个请求的参数进行输入,如果后期需要修改,我们又需要对每一个进行修改,不仅繁琐,还有可能会遗漏或者出现错误。
如果我们能够把这些变量都在一个页面进行统一的管理,是不是就会方便了很多呢?
就比如上图,我们把3个 HTTP 请求的参数都定义在配置文件【用户定义的变量】中,一目了然。“HTTP 请求1”使用的是第一个参数{key1,value1}、“HTTP 请求2”使用的是第二个参数{key2,value2}......
如果请求想要修改参数值,那么我们可以直接在该配置文件修改即可?
我们在这里定义了这些参数变量,那么,这些请求如何调用呢?
调用参数值,也很方便,只要使用符号${变量名}
即可在需要的地方调用该参数值。
如果我们需要修改请求的参数值,就可以直接在【用户定义的变量】这个配置元件中统一修改。