您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > Web自动化测试开放平台
Web自动化测试开放平台Web自动化测试解决方案王勇2014年12月未来网络范围与目标•适用对象:–软件测试团队–软件开发团队–项目验收团队•适用目标:–了解软件生命周期的测试过程(跳过)–了解和掌握自动化测试概念–掌握自动化测试的一些基本知识内容提要软件自动化测试的概述Web自动化测试的方案设计Web自动化测试的方案实施软件自动化测试成本投入和风险分析为什么要实施自动化测试?•应用系统日趋复杂的客观要求一个不可避免的问题是,应用系统变得日趋复杂,并且造成了更大的风险。测试消耗的成本越来越高,花费的时间也越来越长。而成本与时间是有限的。为了在限制的成本与时间范围内,控制发布的软件产品的质量,测试人员被要求在尽量短的时间内对软件进行足够的测试。•避免重复测试的主观要求迭代式开发过程:目前的软件开发或多或少使用了迭代式开发过程,这就导致了我们需要进行一轮又一轮的测试。回归测试:为了检验软件版本是否正确,或者当发现软件中出现了一个或多个以前曾经被修复的缺陷时,不可避免的需要进行回归性的测试。什么时候实施自动化测试?如果我们的自动化测试实施失败了,很显然,我们在不适宜的时机进行了这个工作。开发阶段?—稳定阶段?—部署阶段?建议:可预见的需求不影响自动化测试用例的设计自动化测试实施失败的因素1.期望值过高。就像管理人员要求完全测试一样,期望100%的测试自动化,也同样是一个不现实的需求。2.自动化的收益和成本:成本=用例的开发+用例的维护收益=重复运行次数(时间)+节约的时间功能覆盖率100%成本7自动化测试的成长过程purescripted全部脚本化vaguescripts少量的脚本fragmentarytestcases零碎的测试用例探索式测试roles角色Testingoftenbeginsasfreestyle,expandstowardscripted.测试总是从自由式的探索开始,朝脚本化方向扩张time8自动化测试的应用时机配置管理数据库构建版本发布数据库初始化自动化冒烟测试手工探索测试自动化回归测试冒烟测试结果测试结果报告开发偏重业务流程偏重功能模块软件测试自动化的概述Web自动化测试的方案设计功能方案设计业务方案设计Web自动化测试的方案实施软件自动化测试成本投入和风险分析内容提要让我们一起来设计!依据什么来设计测试方案?测试方案要具有代表性!仔细想想。测试方案设计自动化测试的功能方案设计的流程:操作对象—对象属性—功能实现—结果验证自动化测试的功能方案设计操作用例图:通过Java实现通过WebDriver实现通过Ruby实现©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.12Web对象的识别—Watir-WebDriver©2005iSoftStoneInformationServiceCorporation.Allrightsreserved.13Web对象的识别—Watir-WebDriver•输入框input•按钮button•下拉框select•链接link•点击click•单选radio•多选checkbox•模拟键盘send_keys:enter自动化测试开放平台框架设计自动化测试开放平台框架设计自动化测试框架的用例设计示例•一、基于ruby的watir-webdriver开发•二、统一预置参数输入规则,提供规则模板,做到一个用例一个类,一个方法一个输出。(一个类可以多个方法)•三、统一输出规则,比如:①[info]②TiStone③Loginsuccessful!④001011①[Info]:代表该用例执行成功![error]代表失败![warn]代表警告!②TiStone:代表执行用例名称③Loginsuccessful!:描述或捕获的value值,以“!”结尾④001011:返回码•四、统一用例名称,应与输出②保持一致自动化测试框架的用例设计示例•五、入参统一通过RubyBean介入•六、浏览器实例化、被测系统跳转、用户登录、浏览器实例化等统一继承Tools工具类自动化测试框架的Control设计示例•一、一个用例对应一个Control•二、效验输出,判断用例执行成败,根据规则关联Linux服务器捕获相关日志、配置文件等分析失败原因,缩减定位区域范围。•三、对比数据,关联MySql查询数据,对比web捕获value值。自动化测试框架的Tools设计示例•一、封装常用工具类•二、Linux与MySql业务接口•三、面向对象,实现继承Tools,降低用例开发难度自动化测试框架的Model设计示例•一、提供统一执行、单一执行与批量执行模式•二、关联JAVA前端,通过RubyBean实现两端交互自动化测试框架的JAVA前端设计示例•一、通过被测系统与ruby节点被测系统:需要测试的系统Ruby节点:实现前端与底层ruby关联(可选)•二、用例管理提供创建用例节点提供上传指定节点自动化用例•三、用户管理自动化测试框架的结果展示设计示例•一、用例执行后展示•二、点击查看详情软件测试自动化的概述Web自动化测试的方案设计Web自动化测试的方案实施自动化测试脚本的录制和编写自动化测试的执行和具体实现测试操作和测试数据的回收软件自动化测试成本投入和风险分析内容提要自动化测试脚本设计和录制•工具:WatirRecorder++统一预置参数输入规则,提供规则模板,做到一个用例一个类,一个方法一个输出。(一个类可以多个方法)自动化测试脚本的手工编写•例子一:(实现hao123,搜索“ruby”功能)require'watir-webdriver'includeWatirrequire'test/unit'classTC_recordedTest::Unit::TestCasedeftest_recorded@@b=Watir::Browser.new@@b.goto(')@@b.text_field(:name,'word').set('ruby')@@b.text_field(:name,'word').set('ruby')@@b.button(:value,'百度一下').clickendend自动化测试的具体实现•具体实现在Tools工具类中,多以Linux、Mysql体现•列子二:(通过linux查询黑白名单是否生效)classLinuxMysqldefinitialize(host)@@host=host@@username=root@@password=rootmengmeng“defL.gethostreturn@@hostenddefL.getusernamereturn@@usernameenddefL.getpasswordreturn@@passwordenddefacl(ip)@name=ipa=#{@name}server_cmd1={echo'acl-L';sleep2;echo-e'\n';}|telnet01234|grep#{a}ssh=Net::SSH.start(L.gethost,L.getusername,:password=L.getpassword)do|ssh|result=ssh.exec!(server_cmd1)@result=result…...….endattr_writer:host软件自动化测试的概述Web自动化测试的方案设计Web自动化测试的方案实施软件自动化测试成本投入和风险分析内容提要软件自动化测试的成本投入•脚本的维护成本:自动化的测试流程,使得脚本的维护成为自动化实施的一个关键性的依据。对于一个规范化的系统开发流程来说,实现测试的自动化是很有必要的。但是自动化的脚本维护使得我们的自动化测试在成本上变得较为昂贵。每一个系统的开发都是时刻随着需求的变更而改变,然而在大多数的情况下,就是很微小的一点系统修改都会导致我们去大量的修改自动化的测试脚本。(这就是我们为什么要引入架构的关系!)我们的架构的好处就是业务与逻辑分开,就是页面出现了更新或修改只需重新录制或编写新的用例即可,不会影响业务结果。自动化测试的脚本的维护•整个自动化测试开放平台分两个部件:JAVA前端(负责数据的预置、与执行的发起)Ruby底层(负责业务的实现、与操作的执行)•关于维护JAVA前端所有配置参数都是动态获取,后期业务变更无需修改Ruby底层Test用例层与Control控制层随着需求的迭代,需要长期的进行维护Tools工具层只会根据业务上有很大的变动而更改othe无需更改软件自动化测试的风险分析•风险的存在原因:自动化测试只是针对系统的大部分主要功能进行了有效的测试和验证,从而使得覆盖的测试面较为狭窄,导致系统的有些隐藏问题无法发现。•风险的减小建议:在自动化测试的实现初期,设计好自动化的测试用例,把握好系统的重点功能及可能会出现的问题,进而再实现测试自动化。在现有条件下减小可预计的系统风险。•目标:在现有条件下减小可预计的系统测试风险。说在最后的•1、自动化并不是全自动,需要花精力才能让他自动化。2、自动化工具不是万能的,他也有自己的缺陷。3、自动化永远不可能取代人工的位置。4、自动化脚本的维护有时是很致命的,需要有一定的经验才能做好。内容回顾软件自动化测试的概述Web自动化测试的方案设计功能方案设计业务方案设计Web自动化测试的方案实施自动化测试脚本的录制和编写自动化测试的执行和具体实现测试操作和测试数据的回收软件自动化测试成本投入和风险分析谢谢大家!欢迎大家提问,讨论!
本文标题:Web自动化测试开放平台
链接地址:https://www.777doc.com/doc-2867202 .html