QTP以独特的关键字视图(Keyword View)为核心思想,让开发能力比较薄弱的测试人员都有能力参与自动化测试脚本的编写工作。同时,它独有的活动屏幕(Active Screen)技术使得编写自动化脚本变得可视,每一行脚本都可以找到对应的程序界面。除了Keyword View,QTP还提供了Expert View,它使用vb语法,专为开发能力较强的测试人员准备。QTP还提供了对象库(Object Repository)的概念,将页面上所有的信息都作为一级一级的父子对象树形结构储存,如一个页面为父对象,里面的各种web控件为子对象。
步骤一:录制脚本
点击Record就开始录制脚本,当然可以先设置一下,在Automation-->Record and run settings中。一般使用基本录制模式,该模式以UI对象和属性进行录制,同时捕捉各种事件,如鼠标单击(可以设置捕捉事件的类型)。一些操作比如最小化ie窗口是不会被录制下来的,暂时也不知道怎么录制鼠标滚轮事件,再奋斗。。吧!
步骤二:回放脚本
点击Run就可以回放当前脚本,当然如果录制时选择的是Record and run any open browser,则需要先打开网页(废话,谁都知道哈)
步骤三:看脚本是否运行成功
如果顺利的话,Run之后会自动出现运行的结果页面,结果页面中pass为0,fail也为0,因为没有任何验证点,就无所谓对错。
步骤四:插入验证点
即期望的结果,大多数验证点可以在录制中或全部录制完后插入。录制中可以点击工具栏上的插入,录制完后可以再Active Screen窗口中右键点击需要检查的对象,然后在右键菜单中选择相应的验证点类型。
常用的验证点:
a. text checkpoint,先选择一段文字,然后再该文字上右击,选择insert text checkpoint,在弹出的对话框中选择Constant常量或者Parameter参数的方式,常量很简单,固定的期望值,Parameter参数化验证点见下详解;
b. 图片类型验证点,顾名思义,选择一个图片,右击,选择Insert standard checkpoint
c. 位图类型验证点,可以在Active View中任何位置右击,选择Insert Bitmap checkpoint,然后在弹出的对话框中选择部分区域作为比较的对象(这个对我三维项目比较有帮助*.*)
d. 其他还有好多,比如表格验证点,页面验证点,数据库验证点,页面验证点...
插入验证点后再Run一下,就可以看到是pass还是fail了。
步骤五:参数化测试
首先解释一下数据表,用户在测试时往往希望对某个功能使用不同的测试数据进行多次反复测试,以实现对各种边界值和逻辑路径的覆盖,例如用户希望反复执行10次,那么用户需要录制10个脚本吗?肯定不需要!因为我们只需录制一次然后就可以使用数据表功能创建10条/行数据进行循环(QTP自动会循环)。
每个Action都有自己的数据表,比如默认的Action1就有对应的Action1数据表,另外,所有Action可以共用一个Global数据表。数据表就好像Excel表格,每一列是一个参数,每一行是一种预期输入(可想而知,多少行就意味着多少测试用例,也意味着重复执行该脚本多少次了)。
参数化的方法很简单,见下:
在Keyword View视图中选择需要参数化的信息,如果注册时的用户名,然后点击该测试步骤的Value单元格后面的,这回在弹出的对话框中选择Parameter,默认就是DataTable数据表,下面的Name为参数名就是数据表中的列名,最后选一个DataTable,点确定。然后切换到数据表窗口,就会看到多了一列(如果Name中的参数名是已经存在的那么不会生成新的一列,而是将该信息绑定到已有的参数上)。
然后,就可以再DataTable中一行行输入预期参数了,点击Run,OK了!
步骤六:输出值功能
QTP不仅可以直接参数化预期输入,还可以在运行过程中将部分数据输出到数据表以供其他对象使用。比如注册时需要填两次密码,那么就可以将第一次密码作为输出值,该输出值与步骤四的参数化一样可以对应一个参数名/列,然后第二次密码绑定到该参数上。这样第一次输入的密码会成为第二次输入的参数值,保证了二次的密码的一致。
(没感觉出这样有啥好的)