Jmeter requests
1.Jemter元件和组件
1.1 元件和组件的概念
元件:多个功能相似的的组件的容器,类似于一个工具箱。
组件:实现某个特定功能的实例,类似于工具箱中的螺丝刀,十字扳手...
1.2 作用域和执行顺序
1.2.1 作用域
例子:
1.2.2 执行顺序
1.3 线程
线程通过测试计划右键添加,线程又分为:setUP线程组、tearDown线程组、开放模型线程组、线程组,下面将分别介绍这几个的区别:
1.3.1 setUP线程组
在执行整个测试计划之前执行的操作,和unittest中的setUp功能基本一样
1.3.2 tearDown线程组
在执行整个测试计划之后执行的操作,和unittest中的teardown功能基本一样
我们可以看出不管setUp和tearDown的位置在哪,它们都是在固定的时间执行。
1.3.3 线程的参数设置
1.4 取样器
真正执行的请求,和postman中设置请求相同,这里以http请求为例:
1.5 逻辑控制器
1.6 前置处理器
一般用来实现参数化,添加自定义的用户参数,然后在请求体中使用 ${参数名} 使用
可以看到两个线程的请求分别对应我们设置的用户1和用户2的值
1.6 后置处理器
2.参数化
2.1 使用用户定义的变量
使用场景:一个或多个用户需要需要使用不同的值时
路径:添加--前置处理器--用户参数
这里的用户数就对应线程数,如果用户数<线程数,那么用户变量会被重复使用,例如四个线程只有三个用户,那么第四个线程就会得到第一个用户的值,类似于循环队列。
通过 ${参数名} 使用
2.2 使用CSV文件
使用场景:一个用户循环多次并且每次需要不同的值时
路径:添加--配置原件--CSV Data Set Config
因为这里是三条数据,所以需要配置线程为:
2.3 函数方式
使用场景:多个用户多次循环需要使用不同的值时
路径:工具--函数助手对话框--counter函数
True,每个用户拥有自己的计算器的意思是:分别用变量计单个用户循环的次数
False,使用全局变量的意思则是:使用一个全局变量计算循环了多少次
点击生成后,直接复制函数字符串到需要的位置,和普通变量使用方法一样
可以看到请求的参数number的值在不断增加。