首页 > 其他分享 >使用Jmeter的小知识点

使用Jmeter的小知识点

时间:2023-08-25 15:57:31浏览次数:47  
标签:知识点 jmeter 变量 json token 使用 Jmeter

第一个知识点:登录成功后,其他请求需要用到token值的处理方法如下:

点击配置元件-HTTP信息配置管理器

添加如下图所示的请求头信息即可:这样子,其他接口发送请求的时候,请求头就会附带这个token,就可以免登录了

 

 

第二个知识点:对于请求的请求体(body data)里面使用json格式来发送请求,需要在信息头配置如下信息:

 

 注意:如果服务器不支持解析json数据,那么就不能使用json格式来发送请求了

 

 

 

 

第三个知识点:请求时,不同传参方式需注意的点:

1、如果使用的parameters来传值,不用操心content-type,也不需要设置

2、如果使用的body data来传值,

【1】、如果非json格式来传值,以这种形式来传值,就是类似于parameters来传值了,但是,content-type必须设置成:application/x-www-form-urlencoded; charset=UTF-8,如下图所示:

传值方式如下图所示,那么就得在图二中操作

 

 图二:

 

【2】、如果使用的json格式来传值,那么请看第二个知识点所解释的来设置.

 

第四个知识点:对于变量的使用

【1】在pameters中可以使用变量,如下图所示:

 

 

【2】在body data中可以使用变量,如下图所示:

 

 

 

 

第五个知识点:跨线程使用变量的几种常用方法:

注意:在使用时要注意线程组的执行顺序,需要勾选测试计划里的独立运行每个线程组按钮

 

 

 

 

【1】、Bean Shell内置变量来存取值

第一步:通过创建后置处理器--Bean Shell PostProcessor,props.put("属性名","值")  -----设置属性并赋值 ,如下图所示:

方法一:多个paramters需要用空格隔开,然后代码中通过bsh.args[index]来获取相应的变量值

 

方法二:直接通过变量名来赋值

  

 第二步:通过创建BeanShell PreProcessor 前置处理器,通过props.get("属性名") 获取属性值后,在把值存入到变量中,最后在使用的地方直接用变量名就可以取值了,如下图所示:

 

 

 

  

  

【2】、通过创建后置处理器--Bean Shell PostProcessor,使用beanshell设置全局变量

注:为什么很多地方有些说parameters里面需要添加bean shell区域中要用到的变量,并且还得在${__setProperty(newJsession,${seesion},)}加一个逗号,有没有能给我解说的大佬呀?

  jmeter自带函数__setProperty

  设置变量如下图所示:

 

 

 

其他地方要使用变量通过:${__property(变量名)}  或者是:${__P(变量名)}

 

 

 

 

 

 

第六个知识点:Bean Shell常用内置变量

    JMeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,其中主要的变量及其使用方法如下:

  • log:写入信息到jmeber.log文件,使用方法:log.info(“This is log info!”);

  • ctx:该变量引用了当前线程的上下文,使用方法可参考:org.apache.jmeter.threads.JMeterContext

  • vars - (JMeterVariables):操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:

    a) vars.get(String key):从jmeter中获得变量值

    b) vars.put(String key,String value):数据存到jmeter变量中

    更多方法可参考:org.apache.jmeter.threads.JMeterVariables

  • props - (JMeterProperties - class java.util.Properties):操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。 

    a) props.get("START.HMS");  注:START.HMS为属性名,在文件jmeter.properties中定义 

    b) props.put("PROP1","1234"); 

  • prev - (SampleResult):获取前面的sample返回的信息,常用方法:

    a) getResponseDataAsString():获取响应信息

    b) getResponseCode() :获取响应code

    更多方法可参考:org.apache.jmeter.samplers.SampleResult

  • sampler - (Sampler):gives access to the current sampler

 

第七个知识点:两种常用后置处理器,获取服务器返回的相应数据,例如:token,cookie、其他接口需要的值

【1】、正则表达式提取器(Regular Expression Extractor)

例如:提取cookie时,如下所示:

因为cookie是在响应头里面的所以需要注意选择响应头去提取,而不是body,这一点绝对要看清楚了

 

 

 

 

例如:提取token时,因为是在响应体里面,所以直接选择body,一般默认是body,不需要改变,如下所示:

 

 

 

 

 

 

 

 

提取其他值,跟提取token的方式一模一样

【2】、JSON提取器(JSON Extractor),因为token在data--》token_info---->token,所以层级关系通过$.data.token_info.token来获取token的值

若存在几个token_info,通过下标来选择,下标从1开始,例如:$.data.token_info[1].token ,若想要获取其他值,可以通过$.data.code等等,想获取什么就用“点”

 

 

第八个知识点:逻辑控制器的使用

 

 

第九个知识点:使用正则表达式提取器提取服务器的响应值需要注意的地方

需注意,要通过查看Text模式去查看返回的json数据,因为正则表达式是根据Text模式排序来取值的

如果用Json模式去查看返回的json数据,会导致里面的值排序不一样,导致我们在写正则表达式的时候写错,从而提取不到我们想要的值,例如我想提取id的值,如图所示:

用观察结果树中,使用Text模式查看到的json数据,id后面的是regname

 

使用Json模式查看到的json数据,id后面的是pwd

 

 

 正确的正则表达式如下图所示:

 

第十个知识点:文件上传

 

标签:知识点,jmeter,变量,json,token,使用,Jmeter
From: https://www.cnblogs.com/angelgril/p/12558766.html

相关文章

  • Lock(锁)的使用 ReentrantLock
    Lock(锁)1.synchronized与Lock的对比Lock是显式锁(手动开启和关闭锁,别忘记关闭锁)synchronized是隐式锁,出了作用域自动释放。Lock只有代码块锁,synchronized有代码块锁和方法锁使用Lock锁,JVM将花费较少的时间来调度线程,性能更好。并且具有更好的扩展性(提供更多的子类)......
  • 如何在浏览器中启用 WebGL 以使用 HTML5 3D 查看器
    描述WebCenter中的HTML53DColladaViewer(自14.1以来新增)要求在浏览器中启用WebGL。较旧的浏览器可能不支持此功能,或者要求用户首先显式启用此功能。本页介绍如何为所有主要浏览器启用此功能。WebGL3D查看器本文是以下超级用户文章的摘要:如何在浏览器中启用WebGL?程序......
  • Pandas 使用教程 Series、DataFrame
    目录Series(一维数据)指定索引值使用key/value对象,创建对象设置Series名称参数DataFrame(二维数据)使用字典(key/value)创建loc属性返回指定行的数据Pandas一个强大的分析结构化数据的工具集,基础是Numpy(提供高性能的矩阵运算)Pandas可以从各种文件格式比如CSV、JSON、SQL、M......
  • HTTP代理什么是反向HTTP代理?反向HTTP代理的工作原理及使用场景
    反向HTTP代理是一种网络服务,它可以帮助服务器绕过一些访问限制,如IP封锁、访问频率限制等,以便服务器可以正常提供服务。本文将介绍反向HTTP代理的定义、工作原理、应用场景以及注意事项。反向HTTP代理是一种网络服务,它充当了服务器和客户端之间的中介,通过代理服务器来转发客户端的请......
  • HarmonyOS/OpenHarmony(Stage模型)卡片开发应用上下文Context使用场景一
    1.获取应用文件路径基类Context提供了获取应用文件路径的能力,ApplicationContext、AbilityStageContext、UIAbilityContext和ExtensionContext均继承该能力。应用文件路径属于应用沙箱路径。上述各类Context获取的应用文件路径有所不同。通过ApplicationContext获取应用级别的应用......
  • Heikin-Ashi怎么用,FPmarkets澳福找到3个使用环境
    所有赚到钱的交易者都在告诉你Heikin-Ashi是个能赚到钱的交易指标,但是没有一个赚到钱的交易者告诉你如何使用Heikin-Ashi交易指标赚到钱。其实很简单,只要理解Heikin-Ashi的这3个使用环境,如果不好使,FPmarkets澳福帮你账户充值1000块钱。第一个使用环境  Heikin-Ashi典型蜡烛图经常......
  • Linux CPU 使用率统计
    CPU使用率统计脚本:for((i=0;i<10000;++i))dotop-n1|awk-F'[,|]+'/'%Cpu'/'{printf("%s%.01f\n",strftime("[%Y-%m-%d%H:%M:%S]",systime()),100-$11);}';sleep1;done运行效果:$for((i=0;i<10000;++i))do......
  • svn服务端安装和使用
    首先去官网下载安装包点我下载 下载完了以后选择安装路径然后一直next就可以了安装完了以后在开始菜单里面找到svn打开 如何使用? 这里是创建代码管理的存储库 点击repositories-》右边空白处右键-》createnewrepository-》next-》填写代码管理库的名称......
  • php读取excel数据 使用phpspreadsheet
    首先是用composer安装phpoffice/phpspreadsheet具体代码//读取数据privatefunctionreadYewuExcel(){$reader=IOFactory::createReader("Xlsx");$reader->setReadDataOnly(TRUE);$spreadsheet=$reader->load('yewu.xlsx');......
  • Git安装和使用
    需要安装三个软件1、git客户端点击下载 下载完成后一只next就行了。2、git右键属性的扩展程序点击下载 下载完成后一只next就行了3、git中文包点击下载 下载完成后一只next就行了以上三个都安装完了以后,使用右键就会出现TrotoiseGit的选项我使用的是阿里云云效......