前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Postman 和 Jmeter 的并发测试 Nginx 配置

Postman 和 Jmeter 的并发测试 Nginx 配置

作者头像
RendaZhang
发布2020-11-11 10:44:28
1.3K0
发布2020-11-11 10:44:28
举报
文章被收录于专栏:RendaRenda

用 Spring Boot 搭建完 Spring Cloud 微服务项目后,又用 Nginx 为 Spring Gateway 做了负载均衡,其中做了并发限制和每秒连接数限制,Nginx 的配置如下:

代码语言:javascript
复制
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    gzip  on;

    # 开启令牌桶 - 每秒新增 100 个令牌
    limit_req_zone $binary_remote_addr zone=req_one:10m rate=100r/s;
    # 开启每个 IP 的并发设置
    limit_conn_zone $binary_remote_addr zone=perip:10m;
    # 开启服务器的总并发设置
    limit_conn_zone $server_name zone=perserver:10m;
    # 定义当服务器由于被限制或缓存时,配置写入日志
    limit_conn_log_level error;

    ## 配置 Spring Cloud Gateway 测试

    # 负载均衡
    upstream renda {
        server 127.0.0.1:9000;
        server 127.0.0.1:9001;
    }

    server {
        listen               80;
        server_name          www.springcloudgateway.com;
        # 限制每个 IP 的并发数
        limit_conn           perip 10;
        # 限制并发连接数
        limit_conn           perserver 200;
        # 限制总令牌数,令牌发完后,多出来的请求就会返回 503
        limit_req zone=req_one burst=500 nodelay;
        location / {
            proxy_pass http://renda;
            index index.html index.htm;
        }
    }

}

然后,我使用 Postman 的压力测试 Collection Runner 对配置进行并发测试,选择了 Delay 为 0,Iterations 为 20,对 www.springcloudgateway.com 发起 GET 请求。

然而,Postman 竟然全部测试用例通过了,但是我明明在 Nginx 中限制了每个 IP 的并发数 最多为 10 呀。怎么会与预测不符合呢?

接着,我调大了 Postman 的 Iterations 为 1000,这时候我发现,它是串行执行的;Postman 的 Delay 为 0 不能保证所有请求真的可以同时发起。

于是,我换了测试工具,使用 Jmeter 进行压力测试。

打开 Jmeter,先创建一个 Thread Group,然后创建一个 HTTP Request 和 View Results Tree;在 Thread Group 中设置 Number of Threads 为 20,Ramp-up period 设置为 0;同样地,对 www.springcloudgateway.com 发起 GET 请求。

这时候,一共 10 个测试用例通过了,10 个没有通过,而且测试用例发起得时间都一样,精确到毫秒,符合预测结果。

之后再使用 Jmeter 进行每秒连接数测试,发现也符合预测。

由此可见,Jmeter 虽然配置比较多,但是比 Postman 要可靠一些。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Renda 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档