JMETER的使用和元器件的介绍 -第二节

我们以jmeter 5.4.1为例子,如果发get请求

接口例子 get 

GET /WebServices/WeatherWS.asmx/getSupportCityString?theRegionCode=string HTTP/1.1
Host: ws.webxml.com.cn
那么相关的配置为下图,要将参数输入到参数内,参数内的传参在发送请求时会在url地址后带上参数

 

接口例子psot  

传json的格式 {"username": "eppadmin", "password": "7b61b190ecd5e8d6a5251807df586a71"}

POST /WebServices/WeatherWS.asmx/getSupportCityString HTTP/1.1
Host: ws.webxml.com.cn
Content-Type: application/x-www-form-urlencoded
Content-Length: length
theRegionCode=string
已知请求体发送的请求为:
theRegionCode=string 相关的配置为

 

 因为要发送请求头,所以我们要在

 

 

填写对应参数:Content-Type: application/x-www-form-urlencoded   注意请求参数要写到消息体数据里,这样请求的内容就会输入到消息体内

注意传json内容的格式不要写错标准格式为:{"city":"110000", "month":"4"}

如何让自己避免重复写的jmeter的相关配置?
下面的接口相关的ip和编码,端口不用写,自动带上,如果下面的接口写了默认配置会把他自动覆盖

 

 

 

 逻辑控制器if  如果登录成功为真的话执行下面 什么情景下用如果???

 

 勾选第二个代表他的每项子请求都要判断下条件 

 

添加用户的自定义变量和if循环的结合?

 

 

 预期:加一个后置处理器,登录完之后修改if的vip的值为1    子请求无法进行访问?

操作步骤   在登录下,

1.添加一个后置处理器  添加内容  vars.put("vip","1")

2.在if判断器下勾选子请求发送前判断值

3.发送会看到子请求不会请求

 测试性能时候最好加一个事物控制器,把所有的接口放到事物控制器下?????????

如果不把登录和注册算成一个事物,一个tps大,一个接口tps小,算到一起会小,强关联才算一个事物 

不是强关联就要单独算事物 

 

 

如果一个接口你不给它加断言他是不会错的?除非崩溃?想要看看错不错就得给他加上断言 ?

 随机控制器,随机执行一个?

 设计场景,100个tps压测两个接口,分a40%,分b60%如何压测??????

 

 

 

 按照个数来?????????????????

设计五个人,循环十次,每次请求10次查询场景?

 

 

 设计每个用户只登录一次,循环一百遍??????????

加一个仅一次控制器

 

 

 设计一个用户登录进来,循环查三次不同城市数据??????????

 

 

 为什么有了循环控制台还要foreach???  循环查几次 

for each a 循环a里面每一个    一般添加一个用户变量,赋值几个名字,然后调到接口这样用的场景 

 

 

 

 

 从上一个接口获取数据给下一个接口 ?动态关联 有范围来取    这种比用户变量那个关联要好用 

好多种方法,先说下边界提取器 ,也就是查表头 

 

 

 常用的就是取出数据设置成全局变量给别的接口去调用 

 下载接口的定义?

先拆数据在传输数据 

浏览器可以把你传输的数据按照你的要求下载下来,数据流除了数据还有格式,但是只能返回结果,不能转换txt,postman可以 

 固定定时器?每个请求发送前延迟

 你理解什么是重定向?重定向有什么作用?举几个例子?

你访问的资源已经不在你这个地址了,要给人家一个新的地址,完成是两个请求这就是重定向 ,没有找到我找到的资源所以是

302也就是临时重定向   暂时搬到那里

303 永远重定向           永远把数据搬到另一个地址

第二次请求就是200了

用处???????

1.比如你访问百度,使用http访问,会给你指定一个地址  指向https  307是高级版的302比较安全  

这样比报错好 和用户二次访问好

2.比如你访问聚美优品的首页,会跳转网站 ,网站分为分站和子站  

3.就是登录的时候会生成id 然后请求Home 登录 

 

 定时器

 

 高斯定时器?????????????怎么配置????????

 80%左右的比例

统一随机定时器??????????????????????????????

 常数吞吐量控制器????????????

控制你发的请求的快慢 ,控制tps低让等待发  

通过延时控制tps    定时器就是请求发送之前,加入固定的等待时间,有的是高级和低级的配置       tps不够就没用      

吞吐量定时器???????????????????????????????????????????????????

 

 

 

 在几秒内上用户,如果上不够,不等了直接上发送 

 JMETER参数化的操作???????????????????????????????????????????

考虑不可能一个用户登录,每次都要变化写成一样的

 如果想买运行三次停止就选 fasle   true 
如果循环不停止 就true    false

 设计场景,100tps,五分钟?

100*60*5=30000   最少三万个用户     

场景???开发给你数据库权限,从数据库写sql语句,写出来语句放到jmeter里面去 

d. 从数据库中获取数据

1.先下载Mysql驱动,放到Jmeter的lib目录下

2.添加-配置元件-JDBC Connection Configuration

3.设置下列参数并保存:

ariable Name:连接池名称

Database URL:jdbc:mysql://host:port/db

JDBC Driver class:com.mysql.jdbc.Driver

username:连接数据库的用户名

password:连接数据库的密码

4. 添加JDBC  Request取样器

 5. 给JDBC取样器添加后置处理器,提取对应数据到系统变量

 

 

 

 

 返回结果看不到他真正存在一个变量里面所以需要加一个debug取样器,这样能看到取到的值是否是我加到的环境变量里 

 

 这样的结果和我想要的结果不一样,不太好取值这样操作  ,因为debug取样器拿出来的是一个集合   

 

 

 上面的是将你取到的变量每个以city_name_13=bobo  这种返回结果 

下面是将取到的结果以字典方法存到一个列表里 

取多个字段的用法??????????????????????

 

 

 

 

 仅链接一次数据库,查询所有城市,查询接口 按照数据库返回的数据---执行N遍???????????????????

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2021-04-21 11:17  测试董先生  阅读(122)  评论(0编辑  收藏  举报