培训总结
培训时间: 2008-11-10 - 2008-11-12
培训内容:
第一天:
上午:性能测试需求收集、测试计划、测试报告过程,项目开发人员对项目功能进行了演示。
下午:施工图纸信息系统的脚本设计。乱码的处理、针对脚本进行参数化、关联的讲解。
晚上: 执行性能测试。
学习总结:
针对目前我们设计的需求收集模板增加更加详细的表格,建议增加:
² 生产环境与测试环境的差异,需要将服务器的CPU、内存、硬盘等硬件;
² IIS/ weblogic最大的连接池、数据库连接池;
² 其它对性能有影响的软件、硬件配置;
² 初步预计性能最严重的模板或者功能点;
² 如果是查询功能,需要了解是否存在缓存等因素,典型的查询条件的设置;
² 典型业务操作更加详细,如业务流程名+类型+输入+输出+并发用户个数+响应时间(s)
PS:如果有测试目标的话,需要详细罗列。比如每s点击率达到10/s,的性能指标值为多少。则后续改用目标场景。
要求程序编码必须统一,否则产生乱码。无法对脚本进行参数化等设计。
测试过程:基本分三轮测试
第一:5个用户同时加载,运行后结束,基本可以得到基线响应时间。
第二:20%的用户(目标用户),同时加载,运行后结束。可以验证脚本的正确性。
第三:100%的用户,典型的场景,逐步增加。
第四:有时间的话,测试120%的用户,进行典型场景设置、逐步增加的方式。
先进行单场景后后续再进行综合场景运行。测试的每个阶段都要进行分析。
关联情况:
1、脚本回放时,无法通过,录制与回放的不一致时。
2、操作时始终只能对同一条数据进行操作。比如:审批处理,只能对第一条进行处理,不能自动往下。
3、增加时只能第一条,都是空数据。
解决方法:找到脚本中可能需要关联的参数。复制。逐前到server response中查找该值,找到最近临近的值做参数化。再对同样的值进行替换,切勿自动替换否则将可能将其它值替换了。
第二天:
上午: 对施工图纸测试结果进行分析,结合windows资源,各个图表进行分析。针对之前性能测试报告疑问进行讲解。
下午: 对施工图纸错误执行对脚本进行重新编写,参数化、关联,直到脚本运行成功。讲解如何调试脚本,场景中出现错误,如何查找帮助。针对web page breakdown进行详细的介绍。
学习总结:
分析:首先看summary Report报告, 响应时间主要看90%用户的响应时间。
Processor Queue Length 排队多,原因:
² 线程限制
² IIS与服务器最大的连接数限制,session池
² 数据库连接池限制
CPU异常下降:
² 系统自动强制关闭线程,IIS强制关闭线程。
² 程序出错,可查看后台日志
² 请求没有得到处理。 可进入IIS log查看。
内存泄漏:
² 用户减少时,内存没有下降。
调优方案:
² 先从连接池开始,增加连接池,等软件配置调优。(IIS、数据库等限制)
² 硬件方面。CPU、内存等
² 程序
吞吐量:如果出现网络瓶颈时,可以分开多台机器进行测试。
PS:可以增加ASP计数器,server time。
Web page breakdown:
DNS时间:局域网出现很小;
Connection:HTTP连接;
First Buffer:web server+第一个包的网络时间;
Receive比较长:表示网络延迟。
调试脚本:可以进行单步调式、出错时快照打开,可以记录错误日志,可以跟踪单个用户。
可以用函数将参数打印出来,方便调试。
Viewstade
第三天:
上午:QTP基础操作,结合施工图纸项目进行了自动化录制与回放,对象库如何维护;参数化脚本如何运行。工具每个菜单的讲解。QTP与QC结合使用。
下午:描述性编程与关键字驱动、数据驱动的结合使用。QTP高级操作,多个action的相互调用以及参数传递。如何处理不重现的异常信息。
学习总结:
自动化项目的要求:
² 适合做自动化的项目,功能稳定,不需要人工干预的。
² UI稳定、关键业务,回归测试至少在6次以上。
脚本设计的要求
² 起始点为同一个,方便重复运行。(如:登陆新增一条记录,退出后。一定要进入登陆页面为结束)
QTP可以与QC关联使用。
对象库的维护:可以新增+直接修改(如果应用程序修改后,在选择对象库里面的对象,再点击UPDATE,点击程序中的新对象)+定位到应用程序中的对象。用对象探测器可以查看对象的各类属性值,方便唯一标识对象。
Data table的运行:global+action(I)的运行, 在运行所有行的情况下:global行(3)Xaction行(3)=9次,
Test Setting 设置:可以是设置Data table的运行行数,可以设置预期的异常情况的处理方式Recovery(如:突然弹出对话框,必须点击确定才能运行。但很少重现)
Aciton设置:需要被其他action调用时,设置为reusable action。可以设置对象的参数(parameters)的输入、输出,可以给下action的输入。Action pro设计时,运行时的参数在action call里面设置。
描述性编程:主要录制过程中不存在的对象。(比如:一个查询结果,可能出现多条(可能是10条、20条)记录,需要遍历每条记录的点击则需要用描述性编程)
Dim object DESC
Set DESC=Desripion Create()
Desc(name).value= zhou
关键字驱动:是把测试脚本从工作中分离出来,所有对象增加到对象库,将对象的类型、属性、value等增加到excel里面,手工填写,然后编程。
数据驱动:是把数据从测试脚本中分离出来,实现测试脚本的参数化。