全干工程师神器 - Jmeter 05 - Jmeter配置元件

Posted 渴望力量的哈士奇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全干工程师神器 - Jmeter 05 - Jmeter配置元件相关的知识,希望对你有一定的参考价值。

六、Jmeter配置元件

HTTP请求默认值

设定一些缺省值、默认值

假如,我们创建一个测试计划有很多个HTTP请求,且都是发送到相同的server,这时 我们只需添加一个 Http request defaults组件(HTTP请求默认值)并设置“Server Name or IP”(服务器名称或IP),然后添加多个HTTP请求且不设置"server name or ip",这些 HTTP请求会默认使用Http request defaults组件(HTTP请求默认值)设置的值。



作用域

可以设置成全局变量,也可以设置成局部变量,当在线程外设置,线程内也设置了,使 用线程内的默认值。



HTTP信息头管理器

使用HTTP信息头管理,可以帮助测试人员设定JMeter发送的HTTP请求头所包含的信 息。HTTP信息头中包含有”User-Agent"、“Pragma"、”Referer"等属性。尽可能放在线程 组一级。除非因为某些原因,测试人员希望不同的HTTP请求使用不同的HTTP信息头。

一般请求格式:
1、类似form表单---不填
2、参数json格式---application/json
3、参数是xml---text/xml
   Content-Type


HTTP授权管理器

可以理解为一个用户名、密码的验证过程
在与客户端浏览器、服务器之间发生交互发生请求的时候,提供一个凭证。




HTTP Cookie管理器

Cookies是什么

  • 储存在用户本地终端上的数据

    • session
    • 相对的session是存储在远程服务器上的数据
  • 通常情况下,当用户结束浏览器会话时,系统将终止所有的Cookie。当Web服务
    器创建了Cookie后,只要在其有效期内,当用户访问同一个Web服务器的时,浏
    览器首先要检查本地的Cookies,并将其原样发送给Web服务器

  • Cookies 最典型的应用是判断注册用户是否已经登陆网站,用户可能会得到提示,
    是否在下一次进入此网站时保留用户信息以便简化登陆手续,这些都是Cookies的
    功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同
    一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付
    款时提取信息。

Cookies的管理

自动管理Cookies

  • 在Jmeter配置文件中找到“jmeter.properties”配置文件
  • 在文件中搜索“#CookieManager.save.cookies=false”,将“false”改为“true”
    并将“#”号去掉,否则不会生效,然后重启Jmeter即可。



手动管理Cookies

  • 可以利用firefox中的导出cookies之后,再导入Jmeter中,轻松完成。
  • 前提是FireFox浏览器安装好“FirePath”插件,具体安装方法自行百度。
  • 通过FireFox的FirePath插件将Cookies导出,再在Jmeter载入即可。



用户定义的变量

类似于公共的元素公共的值。
前期自己定义好一个变量,后续可以直接引用变量的名称。

使用场景:一组API根据业务流程制作成测试脚本,想要移植到其他测试环境时,由于 数据库发生了变更,有些初始化数据也相应发生了变化,例如环境地址、请求路径等等。 甚至可以把服务器地址和接口的部分共同请求路径都做成了自定义变量。




实例

jmeter的自定义变量可以让我们随机选取变量,从而达到在性能测试过程中可以随机选 取变量的目的。但是在实际使用中发现一个问题,并不试用于所有场景,比如登录
我的自定义变量如图:



在登录表单中的随机变量取值方式为:


运行完后结果为:


可以看到,两个用户有一个登录成功,有一个失败,这是因为在取值时${__RandomFromMultipleVars(user1|user2)},用户名是随机取一个,而密码 ${__RandomFromMultipleVars(password1|password2)}也是随机取一个,而密码与用户名 取的时候是独立的,有可能取到的用户名与密码不匹配,这是只有两个用户,要是用户 多的话可能会导致大量的登录失败。此种情况有两种解决方案,

第一:
不使用${__RandomFromMultipleVars(password1|password2)}这个方法来取变量, ${__V(user${__threadNum})},换为这个方法,这个方法取的时候是第一个用户的 __threadNum就是1,这样就能取到user1,密码同理也是取到password1,这样就能保证密码与用户名完全匹配了。

第二:
不用用户自定义变量,而是从csv文件中读取,在csv中取值是按行从左到右取值的, 把一个用户名密码写在同一行,这样取值的时候也能保证用户名与密码保持一致。

参考链接:https://blog.csdn.net/shuimengzhen/article/details/54410965

计数器

做数字记录的功能



----


以上是关于全干工程师神器 - Jmeter 05 - Jmeter配置元件的主要内容,如果未能解决你的问题,请参考以下文章

真坑人,什么全栈,这 TMD 叫:全干工程师

真坑人,什么全栈,这 TMD 叫:全干工程师

Jmeter性能测试使用指南

jmeter进行接口测试

Jmeter+Jenkins+Maven 集成

使用JMeter上传文件