近两个月的自动化脚本编写,让我从一个门外汉终于进到了门里,下面想说一下这两个月学习QTP的一些体验想法:
首先,学习自动化脚本要有一个好的思想去指导,没有思想指导的会让人无从下手,其实这点不管学习任何新东西都是必须的,这个思想一般来源于前辈、专家、高手的引导,学习了思想才知道如何去开始,脑子里形成了一个轮廓,甚至有点迫不及待想去自己动手做了。我们的思想大概包括了这些方面:如何维护对象库,执行case的组成,common的function、base的function,各个case要有自己的checkpoint及datainstall,如何去封装function以达到最少的代码重复,
第二,学习方法:有了思想,可能已经觉得是这样,我应该会做了,但其实真动起手来,还是很盲目,东一下西一下,最好的方法,拿一个范本来学习一下,在阅读别人代码的同时,理清原本盲目的思路,然后自己去尝试写第一个脚本,这其中肯定会遇到各种各样的问题,不会使用对象的方法啊、不会使用已有的函数啊等等,不过解决方法更多:QTP的Help,关键要会使用索引搜索,英语都不是问题的,很简单;google很强大,上面有无数前辈们不同的解决方法;身边的前辈至关重要,因为很多实实在在的问题,google和help还真帮不上忙;偶尔还会碰到自己脑筋短路的时候,怎么都跑不通的脚本,别人一看就知道问题在哪里,而且也许很简单,这个时候最大的想法是拿块豆腐撞死算了!^_^
第三:关于问题及总结:写完除了完成了任务,学到了东西,更重要的是可以拿出东西来可以跟大家分享,让后面的人更容易的走过我们这一步,所以问题及总结必不可少,每一个脚本都会遇到这样那样大大小小的问题,或许问题很“弱智”,既然自己会犯,别人也依然会犯,所以同样需要拿来给大家借鉴,唯一不能怕的是丢人!
第四:关于代码优化及数据准备:现在我们的代码,几乎就是硬性使用某个用户,必须有某些数据才能跑的动,能跑脚本的准备会花费太多力气,后期在完成的基础上需要对代码做优化,不需要准备太多的硬性数据就可以跑的动我们的脚本。
上面只提到了概括的内容,现在说一下在我写的过程中遇到的问题及一点点总结:
一、不知道如何使用对象的方法:最简单的是使用QTP的help了,索引一下这个对象,就会有对象的所有方法,也会有例子,最常用的WebTable对象,GetCellData和ChildObject方法,如果是校验这个table的某行列中是否有对象,不用使用ChildObject.Exist,只要WebTable.GetCellData值是否为空即可。
二、思路已经有了,却不会写代码:对于一个没有开发经验的测试工程师这很正常,经常是知道要怎样做,却不知道用哪个函数来实现这个想法,比如取字符串的某几个值,匹配字符串等等,关于字符串常用的方法有:instr、left、right、mid、trim、。。。等等,这些是经常要使用的,最好就是对于已用到的函数做一个记录,不用上次用了这次忘了,又去google一把,浪费太多时间,将函数的参数及使用方法用自己简单易懂的方式记录下来。
三、学会使用DOM结构分析:越来越深刻的体会到DOM结构真的很有用,定义了对象唯一可以确认对象的几个属性就可以很方便的找到这个对象,不过有时候对象之间的childobjects关系弄不是很明白,尤其层级比较多的时候,谁是谁的child不是很清楚,到底该定义到哪个级别的对象再去定义其child呢?不过多尝试几次总会成功!
Set obj=browser(”浏览器“).Page(”页面“).WebElement(”对象“)
set desc1=description.Create
desc1(”micclass”).value=”WebElement”
desc1(”html tag”).value=”LI”—–此处value可以设定多个,直到完全可以确定一个或几个同类型对象即可。
Set c_obj1=obj.ChildObjects(desc1)
c_obj1可能会有多个使用c_obj1.count来计算其数量,而从c_obj1(0)开始便指其第一个对象
这样就可以找到obj的一个子对象c_obj1,对其进行对象可以进行的操作了!
四、调试代码是一个漫长的过程,多多使用msgbox,看下得到的内容是否与预期一样,或许就是这不一致的内容导致,尤其对于数据库校验的内容,会碰到校验的内容其实是错误的,但是并没有报错,单步执行是很有效的方法。
分享到:
相关推荐
本资源是在Amazon device farm上使用appium进行自动化测试时使用的一个范例,详细信息见http://blog.csdn.net/qxb568/article/details/50496195
3. 自动化回归测试:一旦编写好单元测试,就可以将其自动化,每次代码更改后自动运行,确保改动没有引入新的错误。 在MATLAB的Simulink环境中,Simulink Test工具箱提供了一种用于对Simulink模型进行单元测试的方法...
Monkey和Monkeyrunner是Android自动化测试中的两个重要工具,主要用于对应用程序进行压力测试和自定义脚本测试。在本文中,我们将深入探讨这两个工具的基本概念、使用方法和相关资源。 Monkey是Android SDK自带的一...
agitarOneMockingbird自动测试工具AgitarOne初体验之-MockingBird的使用[1]自动化测试工具为了提高测试代码的Coverage,仅仅靠AgitarOne来处理2K多行的方法,是肯本不够的。我现在搞的那个方法覆盖率才20%,不过比...
此外,自动化测试可能也被集成到测试用例中,以提高测试效率和准确性。 总的来说,"展讯测试用例-初版"代表了对"展讯"项目进行全面、系统测试的起点,是确保产品质量和用户体验的重要工具。这份文档的详细内容将...
在IT行业中,我们经常需要进行各种自动化测试,以确保软件的质量和稳定性。Easyb就是这样一款工具,它为Java应用程序提供了简洁、易读的BDD(行为驱动开发)风格的测试框架。这篇博客将带你初次领略Easyb的魅力。 ...
《JUnit4初体验》 JUnit4是Java编程语言中广泛使用的单元测试框架,它极大地简化了测试代码的编写,使得开发者能够更加专注于功能实现,同时确保代码的质量。本篇文章将带你初探JUnit4的魅力,了解其核心概念和使用...
3. **自动化测试**:探讨自动化测试工具和框架,如Selenium、JUnit、TestNG等,以及自动化测试脚本的编写和维护。 4. **持续集成与持续交付**(CI/CD):解释持续集成的概念,介绍Jenkins、GitLab CI/CD等工具,...
agitarOneMockingbird自动测试工具AgitarOne初体验之-MockingBird的使用[2]自动化测试工具thirdPartx=MockingBird.getProxyObject(thirdPart.class);Connectionconnection=MockingBird.getProxyObject(Connection....
此外,本书还涵盖了自动化测试的相关内容,自动化测试是现代软件工程中不可或缺的一部分,尤其在持续集成和持续交付的背景下。书中可能讨论了自动化测试工具的选取、脚本编写、测试框架的应用,以及如何进行回归测试...
- **自动化测试**:推荐使用自动化工具来提高测试效率,特别是在回归测试和性能测试等方面。 4. **质量管理与改进**: - 建立持续的质量管理体系,定期对测试过程进行评估与优化。 - 通过收集和分析测试数据,...
5. 自动化测试:探讨自动化测试工具,如Selenium for Web应用,JUnit for Java,Appium for移动应用测试,以及如何编写和执行自动化测试脚本。 6. 性能测试:涵盖负载测试、压力测试和耐久性测试,以评估系统在高...
例如,选择自动化测试还是手动测试,决定哪些部分进行白盒测试(代码级测试),哪些部分进行黑盒测试(功能行为测试)。同时,测试工作流程也是关键,它定义了从测试需求分析、用例设计、执行、缺陷跟踪到测试结束的...
4. 测试自动化:书中特别关注了测试自动化的话题,讲解了如何选择自动化工具,设计自动化测试用例,以及如何构建和维护自动化测试套件。自动化测试在提高测试覆盖率和速度方面的作用得到了充分阐述。 5. 质量保证与...
4. 自动化测试:探讨自动化测试的重要性,学习使用Selenium、Appium等自动化测试框架进行Web和移动应用的自动化测试。同时,会讲解如何构建测试脚本,执行回归测试,以及实现持续集成。 5. 性能测试:理解性能测试...