系统架构,J2EE Struts +ejb+herbinate
使用协议,http,https
测试工具:需要能够支持HTTP/HTTPS协议测试,监控unix,windows,oracle,tomcat的jvm等
选择工具,Loadrunner+tomcat自己
监控tomcat服务器:
http://tech.it168.com/a2009/0130/263/000000263861.shtml
其他监控Loadrunner都可以
主要目的是:验证系统是否达到预期的性能指标
测试方法:性能测试,压力测试
分析各模块的用户活动表:大概每个模块每天20~200人
平均每天使用该系统的总人数约为600
平均每个用户的login session时间为4个小时(也就是平均每个用户在8个小时内有4个小时处于使用系统状态)
平均每个用户的login session时间内进行500个业务操作
推出:
并发用户数=600*4/8 = 300
吞吐量=300*400(4*60*60)=10.单位是浏览页数每秒
场景A
用户分配:A100,B100,C100.用户增长方式,ramp up,每15秒增加4个,迭代时间间隔30秒,运行时间30分钟
测试指标:页面响应时间小于10秒
场景B,C和A雷同,就增加了用户数
场景D,稳定性测试场景,场景3的用户数的2倍,测试过程中,各应用进程的内存使用没有明显变化。测试过程中,响应时间和业务处理能力没有明显变化
测试用例
登陆后的操作,每步都加个验证条件,一般是验证字符出现的情况
一般情况下只通过HTTP的返回的HTTP CODE来判断请求是否成功。对于典型的HTTP500 HTTP400,Loadrunner能够判断。不过系统自定义的不能判断
所以判断条件我们选择验证页面是否存在特定的字符串
在录制脚本的时候,一般把Login和Logout放在vuser_init和vuser_end里面,而把针对业务的操作放在action里面
录制登陆
验证码问题:
1:暂时屏蔽掉验证码
2:万能验证码
3:Loadrunner调用外部dll,写一个获取验证码的动态库,在测试脚本中调用接口就行了。
关联
如何从“动作1”返回的HTML文本中获取到第一条审批记录的value值
web_reg_save_param()
该语句必须放在产生需要获取关联内容语句的前面(动作1)
web_reg_save_param("sq_id","LB = value=/"". "RB =/'","ord=4","Search=body",LAST)
需要关联的内容存在于下一个Request返回的HTML内容的BODY中,该内容左边界为“value=“”,右边界为””“,
在这个HTML内容的BODY中。我们想通过关联获取的内容顺序排在第四个出现符合约束条件的位置
注意run-settings椎间盘每个的simulate a new user on iteration
参数化
用户名口令参数化
时间参数化
《软件性能测试过程详解和案例剖析》中的案例3