华为云CPTS体验

1. CPTS介绍

云性能测试服务(Cloud Performance Test Service)是一项为基于HTTP/HTTPS/TCP等协议构建的云应用提供性能测试的服务。
服务支持快速模拟大规模并发用户的业务高峰场景,可以很好的支持报文内容和时序自定义、多事务组合的复杂场景测试,测试完成后会为您提供专业的测试报告呈现您的服务质量。

2. 整体方案

今天我们用CPTS做一个http的并发测试。测试demo整体结构:


测试demo

ecs服务器运行nginx文件服务 + 超高EVS卷。
cpts服务通过vpc内部的私有ip对nginx服务器发起并发rest测试。

3. 测试过程:

3.1 申请ecs,安装配置nginx

yum install epel-release
yum install nginx
nginx文件服务器配置(/etc/nginx/nginx.conf):

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       8080 default_server;
        listen       [::]:8080 default_server;
        server_name  _;
        root         /mnt/ultra/test/data;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            autoindex  on;  
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

3.2 测试数据

nginx配置的/mnt/ultra/test/data就是测试数据的目录
里面预装4k小文件,三层目录结构,101010,每个三层目录放置了1w个随机内容小文件,共1110 directories, 10000000 files。
用tree -L 3查看类似下图这样的结构。

目录结构

nginx文件服务器访问示意:
nginx文件服务

直接get路径下的文件,则会获得文件内容的响应

3.3 测试套件(CPTS):

CPTS是使用CCE(云容器引擎)集群来运行测试套软件的,CPTS测试软件是以容器的形式跑在CCE上。
猜测CPTS测试并发能力可能就是多线程+容器的线性扩展能力,测试的控制器可能用的是k8s里面的job,一次测试任务就是在CCE上创建一个job,来管理测试的生命周期。
创建CCE集群,注意要确保和nginx ecs网络是互通的,为了省事,我们用同样的vpc subnet和安全组即可。这边感觉不太友好,用户想用CPTS就需要拥有使用CCE的知识,要跳转到CCE去创建资源,可能有人会觉得麻烦就放弃使用了。

测试资源页签

下面,我们来创建一个测试资源。
这里吐槽一下,创建时候频繁的跳转CCE(创管理节点,执行节点),创好的资源刷不出来等问题,交互上面不友好。
创建测试资源

最终创好了的测试资源
创好的测试资源

3.4 测试工程

创建一个工程,这里只要添加名字。
进入工程管理,添加一个事务。
配置事务:
首先先添加我们的三级目录和最后一级文件为随机变量
分别为1-10,1-10,1-10,1-10000


添加随机变量
设置思考时间

设置测试请求结构

配置完之后,启动调试,看看是否正确访问。


测试前的调试
3.5 开始测试

我们增加一个测试任务,然后关联刚才配置的事务,设置持续时间和并发用户数,就可以启动测试啦。
实时测试数据显示还是很漂亮的。


实时数据

下面还有抓包分析工具提供,如果应用介入了AOM和APM还能拿到其他分析数据,集成功能较好。AOM和APM后面也去体验一把,总体来说,CPTS使用较为方便,对于典型的应用服务协议能够很方便的运行测试,免去了自己线下构建测试系统的工作,省时省力。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容