華為云CPTS體驗(yàn)

1. CPTS介紹

云性能測(cè)試服務(wù)(Cloud Performance Test Service)是一項(xiàng)為基于HTTP/HTTPS/TCP等協(xié)議構(gòu)建的云應(yīng)用提供性能測(cè)試的服務(wù)。
服務(wù)支持快速模擬大規(guī)模并發(fā)用戶的業(yè)務(wù)高峰場(chǎng)景,可以很好的支持報(bào)文內(nèi)容和時(shí)序自定義、多事務(wù)組合的復(fù)雜場(chǎng)景測(cè)試,測(cè)試完成后會(huì)為您提供專業(yè)的測(cè)試報(bào)告呈現(xiàn)您的服務(wù)質(zhì)量。

2. 整體方案

今天我們用CPTS做一個(gè)http的并發(fā)測(cè)試。測(cè)試demo整體結(jié)構(gòu):


測(cè)試demo

ecs服務(wù)器運(yùn)行nginx文件服務(wù) + 超高EVS卷。
cpts服務(wù)通過(guò)vpc內(nèi)部的私有ip對(duì)nginx服務(wù)器發(fā)起并發(fā)rest測(cè)試。

3. 測(cè)試過(guò)程:

3.1 申請(qǐng)ecs,安裝配置nginx

yum install epel-release
yum install nginx
nginx文件服務(wù)器配置(/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 測(cè)試數(shù)據(jù)

nginx配置的/mnt/ultra/test/data就是測(cè)試數(shù)據(jù)的目錄
里面預(yù)裝4k小文件,三層目錄結(jié)構(gòu),101010,每個(gè)三層目錄放置了1w個(gè)隨機(jī)內(nèi)容小文件,共1110 directories, 10000000 files。
用tree -L 3查看類似下圖這樣的結(jié)構(gòu)。

目錄結(jié)構(gòu)

nginx文件服務(wù)器訪問(wèn)示意:
nginx文件服務(wù)

直接get路徑下的文件,則會(huì)獲得文件內(nèi)容的響應(yīng)

3.3 測(cè)試套件(CPTS):

CPTS是使用CCE(云容器引擎)集群來(lái)運(yùn)行測(cè)試套軟件的,CPTS測(cè)試軟件是以容器的形式跑在CCE上。
猜測(cè)CPTS測(cè)試并發(fā)能力可能就是多線程+容器的線性擴(kuò)展能力,測(cè)試的控制器可能用的是k8s里面的job,一次測(cè)試任務(wù)就是在CCE上創(chuàng)建一個(gè)job,來(lái)管理測(cè)試的生命周期。
創(chuàng)建CCE集群,注意要確保和nginx ecs網(wǎng)絡(luò)是互通的,為了省事,我們用同樣的vpc subnet和安全組即可。這邊感覺(jué)不太友好,用戶想用CPTS就需要擁有使用CCE的知識(shí),要跳轉(zhuǎn)到CCE去創(chuàng)建資源,可能有人會(huì)覺(jué)得麻煩就放棄使用了。

測(cè)試資源頁(yè)簽

下面,我們來(lái)創(chuàng)建一個(gè)測(cè)試資源。
這里吐槽一下,創(chuàng)建時(shí)候頻繁的跳轉(zhuǎn)CCE(創(chuàng)管理節(jié)點(diǎn),執(zhí)行節(jié)點(diǎn)),創(chuàng)好的資源刷不出來(lái)等問(wèn)題,交互上面不友好。
創(chuàng)建測(cè)試資源

最終創(chuàng)好了的測(cè)試資源
創(chuàng)好的測(cè)試資源

3.4 測(cè)試工程

創(chuàng)建一個(gè)工程,這里只要添加名字。
進(jìn)入工程管理,添加一個(gè)事務(wù)。
配置事務(wù):
首先先添加我們的三級(jí)目錄和最后一級(jí)文件為隨機(jī)變量
分別為1-10,1-10,1-10,1-10000


添加隨機(jī)變量
設(shè)置思考時(shí)間

設(shè)置測(cè)試請(qǐng)求結(jié)構(gòu)

配置完之后,啟動(dòng)調(diào)試,看看是否正確訪問(wèn)。


測(cè)試前的調(diào)試
3.5 開(kāi)始測(cè)試

我們?cè)黾右粋€(gè)測(cè)試任務(wù),然后關(guān)聯(lián)剛才配置的事務(wù),設(shè)置持續(xù)時(shí)間和并發(fā)用戶數(shù),就可以啟動(dòng)測(cè)試?yán)病?br> 實(shí)時(shí)測(cè)試數(shù)據(jù)顯示還是很漂亮的。


實(shí)時(shí)數(shù)據(jù)

下面還有抓包分析工具提供,如果應(yīng)用介入了AOM和APM還能拿到其他分析數(shù)據(jù),集成功能較好。AOM和APM后面也去體驗(yàn)一把,總體來(lái)說(shuō),CPTS使用較為方便,對(duì)于典型的應(yīng)用服務(wù)協(xié)議能夠很方便的運(yùn)行測(cè)試,免去了自己線下構(gòu)建測(cè)試系統(tǒng)的工作,省時(shí)省力。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容