*移动云产品线-BAAS服务V1.0性能测试计划(2014/06/11-2014/06/17) *
一概述
移动云BAAS服务主要通过cloud+config+code实现云的能力,解放app开发者的服务端工作量,本次对外暴露http服务。1.0版本提供包括Comment、FEED、Media等7个模块对外接口约40个。目前接口功能趋于稳定,具备性能测试的条件。本次性能测试包含压力测试与疲劳测试,测算高并发大数据量下接口的响应时间和吞吐量,得出在不同配置(第一阶段只评估2核4G、8核32G两种)服务器部署下的资源利用率和接口的处理能力。对写接口、查询接口进行长时间调用监控,评估接口的承载能力。
二测试策略
1.使用Jmeter工具直接给接口发送http请求压测。
2.因无明确性能要求,所以采用逐步加压的方式评估系统基线数据。(从50并发开始加压,当load小于1.5-2倍时的TPS)
3.为避免sql cache更真实的模拟用户,测试数据采用业务场景相关联数据。(comment、feed表数据量百万级,media等表数据量相对少)
4.测试响应时间覆盖到容器、接口处理、数据存入ots、rds、oss当中的全链路时间。
5.本次测试采用单个接口测试+混合场景形式。
三测试场景
四测试准备
1 硬件部署与参数
2 软件配置和关键参数
容器tomcat7 连接数150
3 资源安排
4 测试数据准备
采用存储过程的方式灌入测试数据。
插入用户数据的存储过程:
begin
set @i=1;
select max(id)+1 into @nextid from user;
repeat
insert into baas.user(id,username,password,status,email,mobile,gmt_created,gmt_modified,is_admin)
values(@nextid,concat(‘user‘,@nextid),‘$apr1$LrnFGBBs$Z1/2aXAJjY1MLhpcoF.u2/‘,1,
‘[email protected]‘,‘13720140609‘,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP,0);
set @[email protected]+1;
set @[email protected]+1;
until @i>size end repeat;
end
插入部分业务数据的存储过程:
begin
declare done1 int default 0;
declare done2 int default 0;
declare i int default 1;
declare userid,feedid int;
declare feeduser varchar(32);
declare user_num,feed_num,nextid,num int;
declare users cursor for select id from baas.user;
declare feeds cursor for select id,user_id from baas.feed;
declare continue handler for sqlstate ‘02000‘ set done1 = 1;
select max(id)+1 into nextid from baas.comment;
open users;
loop1:repeat
fetch users into userid;
if not done1 then
begin
declare continue handler for sqlstate ‘02000‘ set done2 = 1;
set done2=0;
open feeds;
loop2:repeat
fetch feeds into feedid,feeduser;
if not done2 then
insert into baas.comment(id,user_id,target_type,target_id,target_ower_id,reference_id,content,status,gmt_created,gmt_modified)
values(nextid,userid,1,feedid,feeduser,null,concat(‘content‘,nextid),0,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP);
set i=i+1;
set nextid=nextid+1;
if i>size then
leave loop1;
end if;
end if;
until done2 end repeat loop2;
close feeds;
end;
end if;
until done1 end repeat loop1;
close users;
end
五测试实现
见测试场景
六监控指标
1) 监控服务器端的响应时间和TPS,读场景50并发20次循环响应时间< 200ms, 写场景响应时间 < 400ms
2) 监控不同场景下,服务器的load, io, cpu 情况
00_性能测试计划