【php精品源码栏目提醒】:网学会员为需要php精品源码的朋友们搜集整理了Octopus自动化工具设计 - 其它资料相关资料,希望对各位网友有所帮助!
测试自动化工具 Octopus 框架设计 作 者 赵椿玉 日 期 2011 年 10 月 版 本 初稿 摘要 本自动化工具主要用于质量部软件测试工作。
辅助系统功能测试进行自动化执行,快速实现自动化测试用例,减少测试回归成本,提高工作效率。
也可用于开发人员进行本地系统自测,提高开发人员自测效率。
本论文主要针对自动化工具的需求分析,系统设计,实现等方面进行论述。
结合开源框架 Selenium 和 Servlet 技术,使用 MySQL,通过 Selenium Grid 进行远程请求服务器, 实现任务分发和执行, 使用资源池人工分发实现用例并发执行,动态生成测试结果和记录系统日志,形成 B/S 架构的自动化测试工具 Octopus。
主要特点:系统轻量, 不需要安装客户端, 通过网站访问,新增和修改测试用例,启动用例执行。
测试用例统一使用 xml 格式编写,在执行过程进行数据解析,生成命令,对象,操作属性列表,顺序执行。
通过 Selenium 原理操作 JS 页面,实现测试用例自动执行,并实时生成测试报告。
适用情况: 1、 公司系统中稳定的核心模块,在系统更新后需要进行核心业务确认,避 免因为更新操作影响核心业务造成不必要的损失。
2、 新开发的软件功能,需要定义好操作对象的属性,操作步骤,即可进行 测试用例设计。
即可实现自动化测试,提高工作效率,缩短测试时间, 提高回归覆盖率。
3、 对系统代码更新的情况,在测试阶段无法估计影响范围,使用全业务自 动化回归,实现最大范围的覆盖,降低因代码更新而造成其他业务功能 失败。
4、 实现系统每日构建。
根据测试报告,分析评估更新影响范围。
快速发现 bug。
保证已有业务功能正常。
本文首先是对目前国内主流自动化情况进行分析,总结优缺点,针对分析结果,提出解决方案,并形成此系统设想。
接下来根据公司业务现状,内部需求设计实现方案, 进行项目规划。
然后是根据规划进行系统实现, 达到系统预期效果。
最后归纳总结,结合本系统实现后的情况进行进一步优化设想和进一步的猜想。
关键字:Octopus,自动化测试,Selenium,B/S 架构 目录第一章 绪 论 ....................................................................................................................5第二章 需求分析 ........................................................................................................... 16第三章 系统设计 ........................................................................................................... 27第四章 系统设计实现................................................................................................... 44第五章 总结和展望 ....................................................................................................... 55致 谢 ................................................................................................................................ 57参考文献.......................................................................................................................... 58 4 第一章 绪 论1.1 背景1.1.1 公司背景简介 本公司属于第三方支付公司,主要业务是进行网上支付交易,为商家和消费者提供专业电子支付解决方案和服务。
因此系统每天将会产生大量交易数据,涉及资金交易等敏感数据,为了满足客户的需求,新业务开放,bug 修改以及各银行系统的升级。
每天会定时对系统进行更新,必须保证系统更新不会对系统核心业务造成影响,保证客户资金安全,交易正常。
不能因更新或系统缺陷对交易过程,资金等造成任何损失。
1.1.2 自动化需求来源 随着计算机技术的发展软件在整个社会生活中的重要性变得越来越高软件测试的重要性亦随之变得日益突出.在传统手工测试已不能满足软件测试需要的情况下自动化测试技术孕育而生.软件自动化测试就是希望能够通过辅助工具或其它方法让测试按照预定计划自动进行从而达到减轻手工测试劳动量、提高软件质量的目的.。
而公司的每日更新操作,必须对系统已有业务进行完全回归,保证业务不受影响,在业务功能不断增加,测试资源缺乏,回归测试枯燥的情况,开展自动化测试工作成为必然的趋势。
1.1.3 自动化测试优势 简要说明自动化测试的优势,以充分的理由阐述,自动化测试工作是解决手工软件测试的最好解决方案。
也是支付行业,涉及敏感数据软件必不可少的一项技术。
1、自动化提高测试质量 每一次版本的更新,都会对系统产生一定的影响,自动化测试能节省大量的重复手工操作,保证测试用例的一致性,避免了人为因素的干扰。
从而提高软件测试的质量。
2、自动化提高测试效率,缩短工作时间 对于大规模的软件系统,上千上万个功能点,如果进行人工测试非常耗时间,对于繁琐的测试,测试效率必然会相当低下,而自动化测试可以较好的执行频繁的测试用例,合理利用测试工具,减轻测试工程师的手工测试工作,有效的保证测试质量并缩短测试时间。
3、提高覆盖率 自动化执行,大大缩短的测试时间,于此同时,可以进行更多的测试用例, 5保证能覆盖的功能点都能进行覆盖,提高覆盖率。
4、更好的重现软件缺陷的能力 自动化测试脚本的一致性和可重复性,而这种一致性人工很难做到,自动化用例脚本的一致性就能更好的发现和定位缺陷。
5、更好的利用资源 理想的自动化测试能够按照计划完全自动化地运行,所以在夜间执行自动化测试,次日查看测试报告,能更好的节约和利用资源。
6、保证核心业务交易正常 对于支付行业来说,核心业务随时都有客户使用,所以核心业务必须时刻正常运行,自动化测试能最大粒度的保证核心业务的正常运行,也保证系统的稳定性。
1.1.4 自动化测试误区 自动化测试工作的开展,也不能解决所有问题,自动化测试只是测试的一种辅助手段,需要明确自动化测试如下几点,才能更好的开展自动化工作,确保领导和相关人员对自动化测试正确理解和合理期望。
1、工具是万能的 自动化工具并不是万能的,不可能完成所有的测试工作,自动化工具也不能自动生成测试用例。
在前期,测试用例设计,测试脚本设计,后期的测试结果分析,这些都是需要人工主导。
自动化测试永远不能代替手工测试。
2、一种工具可以用于所有的测试 每种工具都可能适用于特定的环境,适用于不同的测试对象,一种工具是不可能覆盖所有的测试需求,一般情况下,需要利用多种测试工具,或者开发适用于本业务的自动化测试框架才能达到自动化测试的目的。
3、能使工作量大幅度减少 自动化测试工具是不会马上减少测试工作,相反,在大多数情况下,前期投入是非常的大,只有合理运用自动化工具,并得到一定积累,才能有效的减少对整个自动化工作的时间投入。
4、实现 100覆盖 自动化工具是不能 100覆盖测试用例,不是所有的测试都可以适用自动化实现,例如,开发周期很短,回归次数很少。
也不是所有的测试用例都能使用自动化实现,例如:验证码、声控、光学等。
5、自动化工具容易使用 自动化测试不可能通过简单的录制回放就能达到自动化测试效果的。
必须考虑捕捉的操作是否正确,是否能适用于回放,测试数据的动态变化,测试结果的统计
上一篇:
EPICS控制系统中的callback机制
下一篇:
兰州市2010年