業(yè)務(wù)場(chǎng)景描述
5000個(gè)用戶分批次登陸系統(tǒng)硅则,但是要保證登陸的用戶中怪瓶,時(shí)刻有一定比例的用戶做業(yè)務(wù)(6%)世蔗,其他用戶登陸后等待;執(zhí)行完業(yè)務(wù)的用戶進(jìn)入等待隊(duì)列萧锉,然后從等待隊(duì)列選取一人繼續(xù)執(zhí)行業(yè)務(wù)珊随,但是要保證時(shí)刻有6%的執(zhí)行業(yè)務(wù)占比。可以控制總的性能測(cè)試執(zhí)行時(shí)間!
如下編寫(xiě)的場(chǎng)景腳本:
#include
#include
{
string logger;
//共享變量叶洞,控制業(yè)務(wù)的起止時(shí)間
shared t_start,t_end;
int t,t_zong;
//用于第一組并發(fā)用戶的判斷鲫凶,同時(shí)也把值賦予id_yw;
shared num_yw,num_yw1;
//業(yè)務(wù)組內(nèi),每個(gè)虛擬用戶的id
int id_yw;
//下一個(gè)操作業(yè)務(wù)的用戶id
shared id_next,share;
int num_zong, num_binf;
//設(shè)定wait的等待時(shí)間
int time_out;
//根據(jù)業(yè)務(wù)所占比重計(jì)算衩辟,暫時(shí)用2螟炫,測(cè)試取整函數(shù)!
num_zong = _nusers;
num_binf = (_nusers*3)/10;
//設(shè)定wait的等待時(shí)間惭婿,越長(zhǎng)越好不恭,假若一直沒(méi)被激活,此時(shí)間可以設(shè)置為session的失效時(shí)間财饥。
time_out = (_nusers)*3000;
//t_zong换吧,業(yè)務(wù)運(yùn)行時(shí)間,暫時(shí)根據(jù)并發(fā)用戶計(jì)算钥星,1200 60沾瓦,60,1000
t_zong = (_nusers)*3000;
//登錄系統(tǒng)谦炒,一秒兩個(gè)用戶
//delay((_uid)*500);
share = num_binf;
//開(kāi)始業(yè)務(wù)
num_yw1++;
id_yw = num_yw1;
t_start = start_time["yw_time"];
do{
num_yw++;
//第一次發(fā)起并發(fā)贯莺,發(fā)起id_yw比較小的(數(shù)量為該組需要并發(fā)的人數(shù)),大于id_yw的用戶等待被激活
if(num_yw > num_binf)
{
//此處用戶一直在監(jiān)聽(tīng)宁改,是否被激活缕探,即現(xiàn)有操作人員結(jié)束操作后,隨機(jī)產(chǎn)生的id號(hào)是否與自己匹配还蹲。如果匹配則開(kāi)始業(yè)務(wù)操作爹耗,否則繼續(xù)等待。
wait(&id_next,id_yw,id_yw,0,time_out);
if(wait(&id_next,id_yw,id_yw,0,time_out) == 0)
{
//break;
//script_exit("");
user_exit(-1, "Fatal Error - Aborting");
}
//說(shuō)明:此處判斷是否是被正常激活谜喊。0為等待超時(shí)(非正常激活)潭兽。當(dāng)suite結(jié)束時(shí),勢(shì)必會(huì)造成大量的
//用戶非正常激活斗遏,從而同時(shí)并發(fā)下面的業(yè)務(wù)山卦。所以,此處設(shè)置適當(dāng)延遲诵次,使用戶順序推出账蓉。
//delay(id_yw*10000);
}
else
{
logger = "the yw is starting.....";
writelog(logger);
}
//else直接往下走。
//開(kāi)始操作業(yè)務(wù)
//使用delay(8000)模擬業(yè)務(wù)
delay(8000);
//結(jié)束操作業(yè)務(wù)
t_end = stop_time["yw_time"];
t = t_end - t_start;
//業(yè)務(wù)結(jié)束后逾一,在用戶組內(nèi)隨機(jī)取一個(gè)用戶id,賦給共享變量next_id
//id_next = ((rand()) % num_zong )+1;
share++;
if(share<=num_zong)
{
id_next =share;
}else{
share = 1;
id_next =share;
}
}while(t
}
混跡在互聯(lián)網(wǎng)圈的軟件測(cè)試開(kāi)發(fā)一枚剔猿,
專注軟件測(cè)試自動(dòng)化方向,爬蟲(chóng)國(guó)內(nèi)外測(cè)試資源嬉荆,分享給自學(xué)愛(ài)好者。
知乎專欄:軟件自動(dòng)化測(cè)試共享站 酷含。
微博:@ 西說(shuō)測(cè)試
QQ群:330374464 鄙早。
公眾號(hào):testpu 汪茧。
頭條號(hào):傳送