JMeter之脚本录制

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程,刷完面试就稳了,你也可以当高薪软件测试工程师(自动化测试)

前言:
        对于一些JMeter初学者来说,录制脚本可能是最容易掌握的技能之一。虽然我不建议录制性能脚本(因为录制的脚本比较混乱,必须要通过二次处理才可正常使用),但有时做总比不做要好,是吧?下面我们详细介绍使用JMeter录制脚本的方法。

运行环境为Windows 10,JMeter版本为3.3。

我们还是以访问百度首页,并完成一次搜索为例。

一 配置JMeter
        JMeter录制脚本原理是配置一个HTTP代理,然后浏览器通过这个代理访问测试页面从而完成脚本录制。

(1)打开JMeter,并新增一个线程组(选中“测试计划”,右键选择“添加” -> “Threads (Users)” -> “线程组”)

(2)添加“HTTP代理服务器”

        选中“工作台”,右键选择“添加” -> "非测试元件" -> "HTTP代理服务器"

(3)配置HTTP代理服务器

        1.打开新增的HTTP代理服务器,修改目标控制器为”测试计划 > 线程组“

        2.修改分组为“每个组放入一个新的控制器”

        3.还根据需要可以修改代理端口号(默认8888)等配置

     4.选择“Requests Filtering”,在“包含模式”中填入“.+(baidu\.com).+”用以过滤非http://baidu.com的请求

        5.同时在“排除模式”中填入“(?i).*\.(bmp|css|js|gif|ico|jpe?g|png|swf|woff|woff2|htm|html).”用以过滤js、图片、html等资源文件请求

        6. 最后点击“启动”按钮启动HTTP代理

二 录制脚本

(1)配置代理

        打开IE浏览器,点击右上方工具按钮,依次选择“Internet选项” -> “连接” -> “局域网设置” -> “代理服务器”,勾选“为LAN使用代理服务器”,输入本地IP地址127.0.0.1及端口号8888,点击确定保存。

(2)访问页面

        使用IE浏览器打开百度首页https://www.baidu.com/,并进行一次搜索(如搜索lovesoo);若页面提示“此网站的安全证书存在问题”,点击“继续浏览此网站(不推荐) ”即可。

(3)脚本处理

        现在我们打开JMeter查看我们刚才录制的脚本,可以看到JMeter录制了整个流程的请求,包括开始的搜索建议,访问首页请求,获取搜索历史及搜索等请求:

此时,我们需要对这些HTTP请求做一些删除操作,只保留访问首页及搜索的请求

 最后,我们还可以对接口进行响应的参数化及断言,用以校验HTTP请求返回值是否正确:

 下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

 

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

 

文档获取方式:

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

### JMeter TCP 脚本录制教程 #### 使用 BinaryTCPClientImpl 进行 TCP 数据传输 在 JMeter 中,`BinaryTCPClientImpl` 是用于处理二进制数据的类之一。通过这个实现,可以将以十六进制字符串形式输入的数据转换为实际的字节流并发送给目标服务器[^5]。 以下是 `BinaryTCPClientImpl` 的基本配置方法: 1. **设置请求消息**: 在 JMeter 的 TCP Sampler 配置界面中,“Request data”字段应填写十六进制格式的消息内容。例如,如果需要发送的内容是以 ASCII 表示的 “HELLO”,则可以在该字段填入对应的十六进制值:`48 45 4C 4C 4F`。 2. **启用十六进制模式**: 勾选“Use binary format (hex string)”选项以告知 JMeter 请求数据采用的是十六进制编码。 3. **指定端口和主机名**: 设置远程服务的目标地址(即 IP 地址或域名)以及监听的服务端口号。 #### 自定义 JavaSamplerClient 实现复杂逻辑 对于更复杂的场景,可以通过编写自定义的 `JavaSamplerClient` 来满足特定需求。这种方式允许开发者完全控制采样的行为,并能够利用外部依赖库完成高级功能[^4]。 下面展示了一个简单的例子,演示如何创建一个新的 TCP 客户端来模拟通信过程: ```java import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; import org.apache.jmeter.samplers.SampleResult; public class CustomTCPSampler extends AbstractJavaSamplerClient { @Override public SampleResult runTest(JavaSamplerContext context) { String host = context.getParameter("host"); int port = Integer.parseInt(context.getParameter("port")); try(Socket socket = new Socket(host, port); OutputStream outStream = socket.getOutputStream(); InputStream inStream = socket.getInputStream()) { byte[] messageBytes = "TEST MESSAGE".getBytes(); // 发送测试消息 outStream.write(messageBytes); StringBuilder responseBuilder = new StringBuilder(); int bytesRead; while ((bytesRead = inStream.read()) != -1){ responseBuilder.append((char) bytesRead); // 接收返回的结果 } SampleResult result = new SampleResult(); result.setSuccessful(true); result.setResponseData(responseBuilder.toString().getBytes()); return result; } catch(Exception e){ SampleResult errorResult = new SampleResult(); errorResult.setSuccessful(false); errorResult.setResponseMessage(e.getMessage()); return errorResult; } } } ``` 编译上述代码之后将其打包成 jar 文件放入 `$JMETER_HOME/lib/ext/` 目录下即可生效。 --- ### 相关问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值