Jmeter 测试脚本录制器-HTTP 代理服务器

这篇具有很好参考价值的文章主要介绍了Jmeter 测试脚本录制器-HTTP 代理服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用Jmeter 代理服务器可以录制测试脚本,只需要在浏览器中访问相关的页面,配置相关的过滤规则,即可获取对应的接口请求地址、入参,非常方便。

Jmeter 配置代理服务器

代理服务器获取请求地址示例图

Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https
Jmeter配置代理服务器之后,所有的请求都会经过Jmeter,这样就能录制相关的请求地址、参数。

配置步骤

  1. 添加代理服务器
    测试计划 -> 添加 -> 非测试元件 -> HTTP 代理服务器
    Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https
    配置端口 7000
    Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https

  2. 添加线程组,用来存放录制的请求地址
    测试计划 -> 添加 -> 线程(用户)-> 线程组
    Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https

  3. 代理服务器绑定对应的线程组
    在代理服务器对应的配置栏 Test plan content 选择第2步配置的线程组
    Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https

浏览器配置代理

本地需要配置代理,是相关的请求都经过Jmeter服务器。配置代理的方式有多种,这里列举2种:

  1. 浏览器插件配置
  2. windows网络设置配置

Google 浏览器插件配置代理

安装 FoxyProxy, 如果无法在线安装,可以使用离线安装包,地址
链接: https://pan.baidu.com/s/1NIe2pTISyzTX_0qJHJ8qew?pwd=96c2
提取码: 96c2

安装好插件之后,配置FoxyProxy
Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https
选择 Options
Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https
选择对应的选项
Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https
Edit Selection
Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https
注意,代理的端口地址需要和Jmeter代理服务器的一致,不然不会经过Jmeter代理服务器,录制不了脚本

windows 本地网络配置代理

在网络设置这里配置代理
Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https

启动录制,生成证书

生成证书

代理服务器哪里点击启动,就会弹出生成证书的提示
Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https
证书的路径在Jmeter 的安装目录的 bin 文件夹下生成,如图,
ApacheJMeterTemporaryRootCA.crt 文件
Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https

导入证书

Google浏览器安装证书, 隐私和安全,管理证书
Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https
Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https
导入证书
Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https

Jmeter 配置证书

Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https

选项 -> SSL管理器
Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https
选择对应的证书 ApacheJMeterTemporaryRootCA.crt,点击Open

浏览器点击页面,录制请求地址

可以看到对用的请求地址都记录下来了
Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https

过滤配置源码解析

过滤配置分为包含模式、排除模式
Jmeter 测试脚本录制器-HTTP 代理服务器,# jmeter,测试,工具,jmeter,http,https
匹配的源码如下:
org.apache.jmeter.protocol.http.proxy.ProxyControl#filterUrl

boolean filterUrl(HTTPSamplerBase sampler) {
        String domain = sampler.getDomain();
        if (domain == null || domain.isEmpty()) {
            return false;
        }

        String url = generateMatchUrl(sampler);
        CollectionProperty includePatterns = getIncludePatterns();
        if (!includePatterns.isEmpty() && !matchesPatterns(url, includePatterns)) {
            return false;
        }

        CollectionProperty excludePatterns = getExcludePatterns();
        if (!excludePatterns.isEmpty() && matchesPatterns(url, excludePatterns)) {
            return false;
        }

        return true;
    }

    private static String generateMatchUrl(HTTPSamplerBase sampler) {
        StringBuilder buf = new StringBuilder(sampler.getDomain());
        buf.append(':'); // $NON-NLS-1$
        buf.append(sampler.getPort());
        buf.append(sampler.getPath());
        if (!sampler.getQueryString().isEmpty()) {
            buf.append('?'); // $NON-NLS-1$
            buf.append(sampler.getQueryString());
        }
        return buf.toString();
    }

    private static boolean matchesPatterns(String url, CollectionProperty patterns) {
        if (USE_JAVA_REGEX) {
            return matchesPatternsWithJavaRegex(url, patterns);
        }
        return matchesPatternsWithOroRegex(url, patterns);
    }

返回 true 的地址就会记录下来。默认使用的是正则表达式匹配的。整理出如下的测试方法,验证请求的URL 是否匹配成功文章来源地址https://www.toymoban.com/news/detail-800166.html

import org.junit.jupiter.api.Test;

import java.util.regex.Pattern;

public class JmeterProxyTest {

    @Test
    public void testInclude() {
        String[] regexArr = {"dev.scd.com.cn.*"};
        for (String regex : regexArr) {
            Pattern pattern = Pattern.compile(regex);
            String[] testUrls = new String[]{
                    "dev.scd.com.cn:8082/system/sysDept/tree",
                    "hm.baidu.com"
            };
            for (String url : testUrls) {
                if (pattern.matcher(url).matches()) {
                    System.out.println("regex " + regex + " match url " + url);
                }
            }
        }
    }

    @Test
    public void testExclude() {
        String[] regexArr = {".*(.html|.js|.css|.png|.gif|.jpg|.ico|.woff).*", "dev.scd.com.cn:(\\d+)/endpointChat.*"};
        for (String regex : regexArr) {
            Pattern pattern = Pattern.compile(regex);
            String[] testUrls = new String[]{
                    "localhost:8082/css/bootstrap.min.css?v=3.3.6",
                    "hm.baidu.com/hm.gif?cc=1&ck=1&cl=24-bit&ds=1536x864&vl=382&et=0&ja=0&ln=zh-cn&lo=0&lt=1705326161&rnd=1568321180&si=8b02a318fde5831da10426656a43d03c&v=1.3.0&lv=2&sn=39926&r=0&ww=1536&u=https%3A%2F%2Fwww.macrozheng.com%2Fadmin%2Findex.html%23%2Foms%2Forder&tt=mall-admin-web",
                    "dev.scd.com.cn:9999/endpointChat/056/6cjc73m5/xhr"
            };
            for (String url : testUrls) {
                if (pattern.matcher(url).matches()) {
                    System.out.println("regex " + regex + " match url " + url);
                }
            }
        }
    }
}

到了这里,关于Jmeter 测试脚本录制器-HTTP 代理服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【二】Jmeter代理服务器录制请求

    1、Apache组织开发的开源免费压测工具; 2、纯Java程序,跨平台性强; 3、源程序可以从网上下载; 4、高可扩展性; 5、可对服务器、网络或对象模拟巨大的负载,进行压力测试; 6、也可用于接口测试; 7、支持分布式、多节点部署 1、官网 https://jmeter.apache.org/; 2、binary:可运

    2024年02月05日
    浏览(38)
  • git怎么设置http代理服务器

    目录 前言 一、什么是HTTP代理服务器 二、为什么需要设置HTTP代理服务器 三、如何设置HTTP代理服务器 1. 查看当前是否已经存在全局代理设置 2. 设置全局代理 3. 验证代理设置 4. 取消代理设置 四、示例代码 五、总结 前言 Git是一个非常强大的版本控制工具,可以帮助我们管理

    2024年04月27日
    浏览(46)
  • HTTP代理服务器的设计与实现

    一、前言 这个实验挺麻烦的,本来就只有一周时间,等我开始着手准备的时候,也就剩两三天了,也没什么心情自己重头开打代码,于是就找了大佬的代码借鉴了一下,在验收之前处理完了所有的bug。不过,我觉得这个实验还是最好自己慢慢想,想到问题再去搜索,能收获到

    2023年04月13日
    浏览(51)
  • 用Java开发HTTP代理服务器

    HTTP代理服务器是一种网络应用,它充当位于客户端和目标服务器之间的中间节点,将客户端发出的HTTP请求转发给目标服务器,并将目标服务器返回的HTTP响应内容回传给客户端。通过使用代理服务器,客户端可以避免直接访问目标服务器,从而更加安全地访问互联网资源。

    2024年02月16日
    浏览(58)
  • Nginx HTTP和反向代理服务器

    1、概念: Nginx  (engine x) 是一个高性能的HTTP和反向代理web服务器。 2、什么是代理服务器: 概念: 代理服务器是介于客户端和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页信息,而是通过向代理服务器发送请求,信号会先送到代理服务

    2024年02月04日
    浏览(51)
  • 超简单--搭建http、https代理服务器

    vim /etc/squid/squid.conf systemctl start squid systemctl status squid systemctl enable squid 日志位置 /var/log/squid 服务器搭建完成 linux主机配置 //编辑配置文件 vi /etc/profile //在该配置文件的最后添加代理配置 // 退出profile文件并保存 source /etc/profile // 使配置文件生效 普通PC电脑 直接在浏览器或网

    2024年02月08日
    浏览(48)
  • Varnish开源HTTP反向代理缓存服务器

    第三阶段基础 时  间:2023年6月13日 参加人:全班人员 内  容: Varnish 目录 Varnish 端口号:TCP/6081  TCP/6082 配置文件:/etc/varnish/default.vcl 安装部署: 测试功能: Varnish是一个高性能的 开源HTTP反向代理缓存服务器 ,它可以加速动态内容的交付并降低服务器的负载。 Varnish常被

    2024年02月10日
    浏览(533)
  • 使用Go语言编写HTTP代理服务器

    在Go语言中,编写一个HTTP代理服务器相对简单且直观。代理服务器的主要职责是接收客户端的请求,然后将请求转发到目标服务器,再将目标服务器的响应返回给客户端。下面是一个简单的示例,展示如何使用Go语言编写一个基本的HTTP代理服务器: go 复制代码 package  main i

    2024年01月18日
    浏览(54)
  • c# 设置代理服务器发送http请求

    2024年02月16日
    浏览(47)
  • HTTP 代理服务器的设计与实现(C++)

    设计并实现一个基本 HTTP 代理服务器。要求在指定端口(例如 8080)接收来自客户的 HTTP 请求并且根据其中的 URL 地址访问该地址 所指向的 HTTP 服务器(原服务器),接收 HTTP 服 务器的响应报文,并 将响应报文转发给对应的客户进行浏览。 设计并实现一个支持 Cache 功能的

    2024年02月03日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包