昨天恒温说让做一下testerhome的性能测试,那么我们就开始吧

首先在做脚本之前我们先拟定一下用户的行为模型(随便定的不要较真):

业务 比例
用户访问首页 30%
用户查看某个帖子 30%
用户查看发帖人信息 30%
用户搜索帖子 10%

有了用户模型那么我们就开始做脚本吧,我这里用loadrunner做脚本:


Action()
{
lr_start_transaction("首页");
web_reg_find("Search=Body",
"Text=/account/sign_in",
LAST);
web_url("testerhome",
"URL=https://testerhome.com/",
"Referer=https://testerhome.com/",
"Snapshot=t1.inf",
"Mode=HTML",
LAST );
lr_end_transaction("首页", LR_AUTO);
lr_start_transaction("查看帖子");
web_reg_save_param("author",
"LB=<a href=\"/",
"RB=\"><img class=\"media-object avatar-48\"",
"Search=Body",
LAST);
web_url("testerhome",
"URL=https://testerhome.com/topics/{topic}",
"Resource=0",
"Referer=https://testerhome.com/",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
lr_end_transaction("查看帖子", LR_AUTO);
lr_start_transaction("查看作者");
web_reg_find("Search=Body",
"Text=class=\"counter\"",
LAST);
web_url("author",
"URL=https://testerhome.com/{author}",
"Resource=0",
"Referer=https://testerhome.com/topics/{topic}",
"Snapshot=t3.inf",
"Mode=HTML",
LAST);
lr_end_transaction("查看作者", LR_AUTO);
lr_start_transaction("搜索");
web_reg_find("Search=Body",
"Text=class=\"panel-heading clearfix\"",
LAST);
web_url("testerhome",
"URL=https://testerhome.com/search?q={search}",
"Resource=0",
"Referer=",
"Snapshot=t4.inf",
"Mode=HTML",
LAST);
lr_end_transaction("搜索", LR_AUTO);
return 0;
}

写好后立马跑了一下发现怎么报错了

原来是有些帖子 因为历史原因 不能查看.好吧那么我就处理下我的数据
怎么处理呢?
一开始我打算写个脚本来一点点筛选可用的topic数据的,但是跑的好慢啊,最后决定还是用controller跑数据吧.

脚本

PS:在调用函数后面添加lr_output_message 是为了筛选出可用的topic数据,不然测试结果中一堆404 500 很难确认问题.

Action()
{
web_url("testerhome",
"URL=https://testerhome.com/topics/{topic}",
"Resource=0",
"Referer=https://testerhome.com/",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
lr_output_message( "#%s", lr_eval_string( "{topic}" ) );
return 0;
}

脚本数据设置(unique 每个用户分配100条数据,准备跑40个用户,这样就能很快的筛选出前4000个主题中可用的topic了):

然后我们设置controller:

runtime-setting(有些设置是为了能跑的更快):



OK 准备工作OK了,我们就开始跑吧.
过了3分多钟结果就出来了,好多404和500,管理员到底删了多少帖子啊😰


我们要的数据也从controller中导出来了:

稍作处理数据就可以用了:

哦,顺便说下搜索 我差不多做了20个左右的常用关键词

顺便在准备数据的时候还有个插曲,testerhome 竟然挂了😰,应该不是我弄挂的吧.....

看了下时间已经0:08了,该睡觉了,明天继续吧


↙↙↙阅读原文可查看相关链接,并与作者交流