全栈性能测试修炼宝典JMeter实战---第四章学习笔记1

JMeter脚本开发

本章可以学到:
JMeter 工作区介绍
JMeter Http协议录制
JMeter 脚本测试与目录正文不同步
JMeter 关联
JMeter 参数化
JMeter 检查点
JMeter 事务
JMeter 集合点
JMeter 元件运行顺序

JMeter 工作区介绍

分为目录树,测试计划编辑区和菜单栏,如图所示。在这里插入图片描述

JMeter Http协议录制

JMeter 的录制除了自身提供的HTTP代理方式进行录制,第三方工具Badboy也提供了录制支持。
Http 代理方式进行录制的原理是解析网络数据包,按Http协议包装成Http Request、Http Response等对象。

Badboy进行录制

Badboy是一个浏览器模拟工具,具有录制及回放功能,还可进行测试。
Badboy录制的脚本可导成.jmx格式,.jmx是JMeter脚本保存的格式。
Badboy的录制方式有两种,一种是Request方式,一种是Navigation方式。
两种方式的区别:

  1. request:模拟浏览器发送表单信息到服务器,每个资源都蒋作为请求发送。
  2. Navigation:记录用户鼠标动作,类似自动化测试工具QTP,回放时模拟一个点击。

基于JMeter脚本的要求,我们需要选用request方式来进行录制,这些请求将以.JMX格式保存下来,采耳可以导入JMeter进行复用。

下载安装Badboy:

  1. 下载并安装Badboy
  2. 打开Bayboy
    初始界面默认开启Request的录制模式。
    在这里插入图片描述
    Script目录树结构介绍:
    Test Suite 1:默认的脚本根节点,类似JMeter的测试计划根节点。
    Test1:测试活动根节点,可理解为一个业务功能脚本存放在此目录下。
    Step2:测试活动的步骤,如果一个业务过程比较长,可分为多个测试步骤。

开始录制:
Step1:进入网址。
打开录制按钮(默认打开),输入网址,点击 -> 或回车,即开始录制。
在这里插入图片描述
Step2:点击登录,输入用户名及密码,验证成功后进入微博首页。
1.点击点击新建一个Step2
2.再点击登录进行登录操作。
在这里插入图片描述
Step3:在微博首页,发布微博。
1.先点击新建一个Step3
2.在输入框内编辑微博内容,点击发布。
在这里插入图片描述
这样,我们已经录制完了登录及发微博的全过程。
在这里插入图片描述
录制完成后导出成JMeter脚本,路径:【File】-【Export to JMeter】-【选择保存路径】
在JMeter中打开已录制好的脚本。路径:【File】-【Open】-【打开保存路径】-【选择脚本文件】
JMeter以树形结构显示脚本,执行时原则上按节点先后顺序往下执行。
Test Plan: 测试计划,JMeter测试脚本根节点。每个测试脚本都是一个测试计划。
在这里插入图片描述

  1. User Defined Variables:设置用户全局变量。
  2. Run Thread Groups consecutively:独立运行每个线程组,不设置时多个线程组同时运行。
  3. Run tearDown Thread Groups after shundown of main threads:关闭主线程后运行treardown程序来正常关闭线程组。
  4. Function Test Mode:函数测试模式。
  5. Add Directory or jar to classpath:把测试需求依赖的jar包或包所在的目录加入类路径。
    在这里插入图片描述
    Thread Group:模拟虚拟用户的发起点,再次可以设置线程数及于运行次数或者运行时间,还可以定义调度时间与运行时长。
    在这里插入图片描述
    HTTP Cookie Manage:JMeter通过加入HTTP Cookie Manage来自记录Cookie信息,选择默认即可。
    在这里插入图片描述
    JMeter支持的Cookie标准有多种,JMeter同时也提供两组程序实现来支持这些Cookie标准,分别是HttpClient3与HttpClient4。
    HttpClient3.1可以支持一下Cookie标准:
    RFC2109,JMeter默认Cookie协议是RFC2109;
    RFC2965;
    Netscape标准;
    Browser Compatibility;
    Ignore Cookie,忽略所有Cookie;

User Defined Variables:用户定义的变量。
jsessionid一般为服务器返回的,每个用户返回的都不一样。但Badboy转换的脚本把jsessionid放在此元件中,所以我们要把它去掉。
在这里插入图片描述
Http Header Manage:管理Http头信息。
在这里插入图片描述
Step 2:一次登录可以多次发布微博,所以把登录的循环次数设置为1。其余的可设为永远。
在这里插入图片描述
https://weibo.com/:这是一个HTTP请求元件。
Web Server:指定Http请求的主机地址,不需要加上“http://”,JMeter会自动加上。普通Web服务器端口号默认为50,邮箱端口号一般为443,如果访问地址中带有其他端口号请在此填入。
在这里插入图片描述
Timeouts:指定超时时间,单位是毫秒;Connect指定连接超时时间,Response指定响应超时时间。
Implementation:
Httpclient是Apache Jakarta Common下的子项目,通过她可以高效地访问HTTP协议的资源,可看成是一个没有界面的浏览器;
HttpClient4,Httpclient3.1的扩展;
Java,使用JDK提供的net包中的工具类来访问。

Protocol(协议):录制的微博登录用的是https协议,https是SSL的链接,较http有较高的安全性。
Method(方法):常用Post和Get。Get提交请求时会把参数暴露再浏览器地址栏,且长度限制约为1M;Post提交请求对于表单理论上没有长度限制,用户一般也看不到提交的内容,较Get方式安全。

Content encoding:字符编码格式,默认iso8859
path:除主机地址部分的访问链接
Redirect Automatically(自动重定向):HttpClient接收到请求后,如果请求中包含重定向请求,HttpClient是可以自动跳转的,但是只针对Get和Post请求,勾选后“Follow Redirects(跟随重定向)”失效。但是JMeter是不记录重定向过程内容的,在查看结果树中无法找到重定向过程内容。
Follow Redirects(跟随重定向):Http Request取样器的默认选项,当响应Code为3××时(如301是重定向),自动跳转到目标地址。与自动重定向不同,JMeter会记录重定向过程中的所有请求响应,在查看结果树时可以看到服务器返回的内容。

Use KeepAlive:Http响应头中的Connection:Keep-Alive,默认选中。
Use multipart/form-data for POST:当发送HTTP Post请求时,使用Use multipart/form-data方式发送。这个属性与Post 方法绑定。

Browser-compatible headers:浏览器兼容模式,使用Use multipart/form-data for POST建议勾选此项。

Send Parameters With the Request:同请求一起发送参数。

Proxy Server:配置代理服务器。
Embedded Resource from HTML:解析HTML文件和发送的HTTP/HTTPS请求资源。
Embedded URLs must match:检索所有嵌入资源。
Use concurrunt pool:并发检索资源,可设置并发大小。
URLs must match :使用正则表达式来指定检索的URL范围。

以上根据脚本介绍了各元件

JMeter 配置代理进行录制

  1. 浏览器配置代理
    设置代理服务器,把localhost改成127.0.0.1
  2. JMeter配置代理
    (1)在工作台中建立一个HTTP代理服务器节点

版权声明:本文为qq_41614773原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。