zoukankan      html  css  js  c++  java
  • 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遍???????????????????

     

     

     
  • 相关阅读:
    解决无线打印机休眠后掉线无法进行局域网打印的问题
    快速为某个目录的verilog文件生成filelist
    使用Visual Studio的Spy++查找弹窗广告进程
    【转载】verilog语法之generate语句的基本认识
    补码(为什么按位取反再加一):告诉你一个其实很简单的问题
    【转载】EDID的简介和解析
    win32diskimager 谨慎使用
    UXE的一些使用归纳
    如何在win8或win10系统里添加inf驱动程序
    STM32 USB HID
  • 原文地址:https://www.cnblogs.com/weilemeizi/p/14684447.html
Copyright © 2011-2022 走看看