功能自动化测试之QTP录制脚本(二)

本文详细介绍了使用QTP进行自动化测试的过程,包括录制脚本、脚本错误分类、QTP的视图、专家视图操作、对象库管理及脚本补录等内容。通过案例解析,如Flight单机版软件和MTours网页版软件的测试,深入理解自动化测试脚本的编写与调试。

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!
接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/103669528

四、录制脚本

录制完成后必须回放脚本,出现错误或其他问题时,要对脚本进行调试。

1.案例

1.1 Flight

QTP 自带的单机版软件,俗称“单机版小飞机”。

  • 在如下目录就能找到这个小飞机程序,具体怎么登录以及软件的业务及使用会在下个案例一起演示的
    在这里插入图片描述

1.2 MTours

需要自己安装,俗称“网页版小飞机”。

1.2.1 搭建被测网站
  • 挂载安装程序,MTours目录下的Setup.exe安装程序,傻瓜式安装
    在这里插入图片描述
  • 在程序中找到安装的MTours目录,先停止服务,再启动服务
    在这里插入图片描述
  • 紧接着当服务器运行窗口打开后,打开程序中提供的页面,需要注意的是这个地址并没有添加8080端口,需要自己在地址栏添加,不然无法打开页面
    在这里插入图片描述
  • 回到网站,点击register注册账号
    在这里插入图片描述
  • 在注册页面,输入必填项(红字项),点击submit提交却出错了
    在这里插入图片描述
  • 复制准备的1.2目录文件,替换掉C:\Program Files\Mercury Interactive\MercuryTours\Javasoft\jre\1.2目录
    在这里插入图片描述
  • 启动服务,重新打开页面,进行注册,显示注册成功
    在这里插入图片描述
1.2.2 熟悉测试案例的业务和使用流程
  • 登录注册的cdtaogang用户,进行订票
    在这里插入图片描述
  • 如下
    在这里插入图片描述
  • 到如下页面,输入红字必填项,点击购买即可
    在这里插入图片描述
  • 购买完成,机票信息如下
    在这里插入图片描述
  • 打开小飞机程序,代理名称随便填写,点击帮助则可以查看密码
    在这里插入图片描述
  • 登录成功,显示如下
    在这里插入图片描述
  • 在文件中选择打开文件,可以该软件自带订单进行查看,此软件默认有1-10这10个订单
    在这里插入图片描述
  • 确定后,订单编号为1的订单信息如下所示
    在这里插入图片描述
  • 点击上方菜单中的红叉,也就是删除按钮,对此订单进行删除,提示无法删除(因为订单是系统软件自带的,而不是用户使用软件后创建的,所以用户是无法删除的)
    在这里插入图片描述
  • 创建订单,选择出发日期,选择从伦敦到巴黎,查看航班信息一共有6趟,不同的起点和终点,对应的航班都不一样
    在这里插入图片描述
  • 选择航班后,最后输入客户姓名和机票数,点击插入订单,则将该订单信息写入到数据库中
    在这里插入图片描述
  • 写入数据库成功后,会显示已插入状态,那么通过这些显示的提示,通过QTP录制来进行测试的
    在这里插入图片描述

2.脚本错误分类

2.1 语法错误

是由不正确的脚本语法导致的。

2.2 运行时错误

是脚本在执行过程中脚本指令试图执行不可能的动作而导致的。

2.2.1 QTP录制单机版软件
  • 打开QTP,在弹出的插件管理器中,什么都不要勾选,因为Flight小飞机是安装到windows程序中的
    在这里插入图片描述
  • 录制单机版软件进行订票
    在这里插入图片描述
  • 点击停止,录制完毕如下
    在这里插入图片描述
  • 录制脚本完成,一定要运行脚本,查看是否正确,切记要把之前录制时打开的程序关闭,查看结果,目前来说脚本是没有问题的
    在这里插入图片描述
  • 保存脚本
    在这里插入图片描述
2.2.2 QTP录制MTours
  • 首先新建脚本,点击录制后,安装之前搭建被测网站那样的方式,先启动服务,打开MTours提供的页面,在地址栏localhost后面加上:8080,,回车后打开MTours主页,关闭页面,关闭服务,最后停止录制,脚本如下
    在这里插入图片描述
  • 执行脚本,查看脚本是否正确,能否打开MTours主页,提示如下错误,服务器批处理文件成功运行,但是在打开页面时则无法打开,说明浏览器没有打开
    在这里插入图片描述
  • 重新新建测试,重新录制,这次改变的策略为不打开MercuryTours页面,而是打开浏览器然后在地址输入http://localhost:8080/mtours地址打开主页并进行登录,登录成功后提示如下弹框,勾选下次不再显示,并点击确定
    在这里插入图片描述
  • 最后脚本录制完成如下
    在这里插入图片描述
  • 执行脚本,验证脚本是否正确,执行脚本过程到输入密码点击登录后,出现的弹框导致脚本执行出错,原因很简答,因为在录制的时候有一个弹框是勾选下次不要显示,所以导致执行脚本时并没有发现此弹框导致错误报错
    在这里插入图片描述
  • 解决方法:删除或注释掉关于不要再显示此消息的脚本命令即可,就是错误提示框上显示的17行脚本命令,以及前后面的确定点击操作,意思就是第一次进入页面能见的操作但以后在访问页面不会出现的操作所对应的脚本命令全部注释或者删除,自己调试即可
    在这里插入图片描述
  • 再次运行脚本,虽然没有报错,但是还是不正确,原因是这是一个web页面而不是windows上的程序,导致在执行脚本时各种不准确,所以博主需要退出QTP重新进入选择web程序
    在这里插入图片描述
  • 最终脚本如下
    在这里插入图片描述
  • 运行脚本查看结果,目前来说是没有问题的,将其保存
    在这里插入图片描述

3.QTP 的视图

3.1 关键字视图(Keyword View)

  • 实际上是一个表格,是被测应用中被操作的具有层次结构的对象、对象被执行的动作、对象被设定的值的有序集合
    √     Item/项:表示各个界面元素(控件的类型和名称)。
    √     Operation/操作:表示对界面元素的做出的动作,每一个动作串起来就是一系列的测试步骤。
    √     Value/值:测试输入的数据。
    √     Documentatio/文档:测试文档,可以导出作为测试用例。

  • 关键字驱动测试方法或表格驱动测试方法
    √     此方法把应用程序的功能文档化为表格,用一步步的指令指导执行每一个测试步骤。
    √     重点在于开发表格和关键字,自动化框架根据表格数据和关键字来执行脚本,驱动应用程序。
    在这里插入图片描述

3.2 专家视图(Expert View)

  • 用于编写和修改脚本代码。

  • 层次关系
    √     点号:“.”

  • 注释
    √     '(英文单引号)或 rem

  • 关键字不区分大小写
    在这里插入图片描述

3.3 活动屏幕视图(Active Screen)

  • 显示操作的截图。
  • 不显示截图的解决办法
    √     自动化→更新运行模式→确定
    在这里插入图片描述
  • 如果发现活动窗口中没有视图的话,那么就在自动化菜单中更新即可
    在这里插入图片描述

3.4 数据表视图(DataTable)

用于进行参数化,用于存放测试用例中的数据。
在这里插入图片描述

4.QTP 专家视图

4.1 打开文件或程序

  • SystemUtil.run “file”
    √     用于打开一个文件或程序。
    √     file 表示文件或程序的完整路径及名称。

  • SystemUtil.run “file” , “para”
    √     para 表示启动参数。
    √     打开 Tomcat

       ✰     SystemUtil.Run “…\jakarta-tomcat-3.3\bin\tomcat.bat”,“start”

  • SystemUtil.Run “iexplore.exe”, “url 地址”
    √     打开一个网页
    √     如 http://localhost:8080/mtours

案例

  • 打开记事本
    在这里插入图片描述
  • 打开桌面上的文件
    在这里插入图片描述
  • 如打开start server.bat文件,同理也是从程序中找到该文件,右击属性目标位置,使用systemutil.run打开
    在这里插入图片描述
  • 打开系统自带的IE浏览器
    在这里插入图片描述
  • 打开浏览器并在浏览器中输入地址
    在这里插入图片描述

4.2 QTP 对象的分类和名称

单机+C/SWeb
窗口window浏览器browser
对话框dialog页面page
文本框winedit文本框webedit
单选按钮winradiobutton单选按钮webradiogroup
复选框wincheckbox复选框webcheckbox
下拉列表wincombobox下拉列表weblist
列表框winlist
命令按钮winbutton命令按钮image
其他对象winobject

单机+C/S:
在这里插入图片描述
Web:
在这里插入图片描述

4.3 QTP 对象的操作

  • 置文本框的值
    √     对象名.Set 值数据
    √     对象名.type 值数据

  • 点击对象
    √     对象名.click 坐标
           ✰     坐标可以省略

  • 选择值
    √     对象名.select 值
    √     对象名.select 索引号
           ✰     索引号:0 表示第 1 项,依次类推。
    √     下拉列表、列表框
           ✰     单机版软件:直接用整数。
           ✰     网页:可用整数,也可用"#索引号",从 0 开始
    √     单选按钮
           ✰     网页:必须用"#索引号",双引号不能省略。
           ✰     只能用于网页中。

  • 设置网页页面同步
    √     browser(“浏览器标题”).page(“网页标题”).sync
           ✰     browser.sync 表示等待浏览器中页面中所有的元素都已加载完成后后进行下一步操作,加载完成的标志是浏览器左下角显示“完成”字样。
    √     打开某个网址
           ✰     browser(“浏览器标题”).navigate url
    √     关闭浏览器
           ✰     browserbrowser(“浏览器标题”).Close
           ✰     browserbrowser(“浏览器标题”).CloseAllTabs,不管浏览器中有多少标签,不会提示是否全部关闭,而直接全部关闭

  • 在mtours脚本中,第三行命令后面就设置了网页页面同步,如果第三步中页面未显示完成,则不会执行第四行脚本
    在这里插入图片描述

4.3.1 修改单机版软件脚本中的控制值
  • 将之前的脚本复制,复制到下面,注释之前的脚本,在脚本中修改控制值,运行脚本与预期设定脚本值一致插入订单(需要注意的点是当修改了控件值后,要去判断下面的脚本会不会出错,包括是否跟录制时遇到的选项及界面保持一致,不然则会出错,不过即使出错也是很好处理的
    在这里插入图片描述
4.3.2 修改网站脚本中的控制值
  • 修改如下几项
    在这里插入图片描述
  • 运行脚本,提示在执行38行代码时提示以下错误
    在这里插入图片描述
  • 原因是单选框,不能直接使用数字,需要在38行代码上对于数字添加"#",还要注意博主填写的数字为3,其实根本没有这个3,因为下标是从0开始的,所以改为2即可,那么如果怕出错可以将所有select 数字的全部加上"#",执行脚本成功
    在这里插入图片描述

5.对象库管理

5.1 查看对象

  • 点击上方菜单的对象库按钮
    在这里插入图片描述

5.2 添加对象入库

  • 利用活动屏幕视图
    √     右击 Active Screen 中的对象后单击“查看/添加对象”(View/Add Object)。
  • 如下图在对象库管理中,在登录对象下面只有帮助没有取消,确定没有是因为博主录制时点击的回车,如果单独录制的话就很麻烦,要在当前对象库中添加这个取消对象,则可以进行添加
    在这里插入图片描述
  • 鼠标点击登录界面的脚本,右击活动窗口中的取消按钮,点击查看/添加对象
    在这里插入图片描述
  • 点击添加到库中即可
    在这里插入图片描述
  • 查看对象库管理器中登录下面就存在取消对象了
    在这里插入图片描述
  • 利用 Spy 对象探测器
    √     当对象被遮住或需要某些操作才能显示时,可以按着 Ctrl,当鼠标变为手形时即可捕获对象。
  • 在对象库管理器或者窗口栏菜单中,点击如下图标打开对象对象探测器
    在这里插入图片描述
  • 侦探flight确定按钮
    在这里插入图片描述
  • 点击确定按钮后,回到如下界面
    在这里插入图片描述
  • 紧接着点击如下图标,进入入库
    在这里插入图片描述
    在这里插入图片描述
  • 在对象库中操作
    √     Resources 菜单或工具栏工具命令。
  • 在对象库管理中,点击如下按钮,则可以添加对象到库中,具体操作跟对象探测器一致
    在这里插入图片描述
  • 批量入库
    √     对象库中点击菜单“对象”→将对象加到本地。
    √     菜单“资源”→对象库管理器→对象→导航并了解→了解→点击窗口标题→关闭。
    第一种方式
  • 如添加计算器,同意点击将对象添加到本地
    在这里插入图片描述
  • 同样的按住ctrl键打开计算器,然后松开ctrl键,点击计算器
    在这里插入图片描述
  • 选择所有对象
    在这里插入图片描述
  • 点击确定后计算器全部对象则添加进来了
    在这里插入图片描述
    第二种方式
  • 如添加记事本,打开对象库管理器
    在这里插入图片描述
  • 选择对象——导航并了解
    在这里插入图片描述
  • 然后打开记事本,按照以下操作
    在这里插入图片描述
  • 点了了解过后,需要点击关闭,会自动回到对象管理器界面,那么记事本对象则添加成功
    在这里插入图片描述

5.3 对象的重命名、复制和删除

在对象仓库中,右击对象即可。
在这里插入图片描述

5.4 对象库复用

  • 导出对象库
    √     File→Export Local Object,可以保存至本地磁盘,扩展名为.tsr
  • 打开对象库,如果想要全部导出则选中测试对象,否则要导出哪个则选中即可
    在这里插入图片描述
  • 点击对象库菜单栏——文件中——导出
    在这里插入图片描述
  • 导入对象
    √     菜单“资源”→关联对象库(Resources→Associate)
  • 首先需要新建一个测试,选择资源——关联库
    在这里插入图片描述
  • 选择+添加,找到之前导出的库
    在这里插入图片描述
  • 到如下页面,需要将action可用操作添加到关联操作栏
    在这里插入图片描述
  • 打开关联库,查看导入的库
    在这里插入图片描述
  • 因为是导入进来的对象,所以是无法进行重命名修改删除操作的,所以颜色为白色,全部选中选择复制到本地,则可以恢复一切的操作,因为copy
    在这里插入图片描述

6.脚本补录

6.1 直接录制

务必首先定位到需要补录的位置。
举例:如在登录flight软件时,需要去点击帮助,没有点击,此时需要进行补录
第一种

  • 首先新建一个测试,录制flight登录,此时没有点击帮助
    在这里插入图片描述
  • 当输入代理名称后忘记密码,那么可以点击帮助,现在则在输入代理名称脚本后面(前后空一行),点击录制进行补录帮助,需要注意的是在点击录制之前,一定要打开flight登录窗口,然后再点击录制,最后点击帮助,只录取帮助
    在这里插入图片描述

第二种

  • 定位需要补录的位置,将之后的脚本进行注释掉,直接运行脚本(肯定会打开软件),脚本运行完成后,再点击录制,完成操作即可表示为补录
    在这里插入图片描述
  • 录制完成后,再将注释掉的脚本恢复即可
    在这里插入图片描述

6.2 添加对象入库

  • 利用活动屏幕视图。
    √     右击 Active Screen 中的对象后 Step Generator。

  • 将对象库中的对象直接拖动到代码或关键字视图中。

  • 直接操作关键字或者写脚本。

第一种

  • 删除脚本中的确定取消帮助以及航班预订等脚本,同时在对象库中删除相应的对象
    在这里插入图片描述
  • 当输入代理名称和密码后,想点击取消,那么在活动窗口,右击取消——步骤生成器
    在这里插入图片描述
  • 勾选插入即可
    在这里插入图片描述
  • 脚本如下,运行与预期一致
    在这里插入图片描述

第二种

  • 如补录确定按钮,在活动窗口右击查看/添加对象
    在这里插入图片描述
  • 选择添加到库中,并在库中查看
    在这里插入图片描述
  • 在对象库中直接拖动确定按钮到脚本中即可,(专家视图和关键字视图都是可以拖动的)
    在这里插入图片描述

第二种

  • 切换到关键字视图中,然后选中登录——右击插入新步骤——选中确定即可
    在这里插入图片描述
  • 添加的新步骤位置不对时,可以拖动调换即可
    在这里插入图片描述
iTestin3.0.1版本: 简单.强大.专业。 iTestin 基于真实终端设备的脚本录制、回放,验证工具。友好、简便的操作界面,强大的脚本录制功能。适用于Android系统下的Phone和Pad。从简单到深入为Android应用程序测试. iTestin3.0.1实用功能概括: 控件识别与坐标录制脚本 支持脚本本地编辑功能 支持滑屏,长按等操作 支持账号及复杂文本的输入 支持断言、休眠、截屏等脚本操作 支持插入、删除、编辑操作 支持脚本在不同分辨率安卓终端上运行 支持脚本上传云端千款终端同时测试 WindowsXP及以上操作系统.运行畅通,挣脱环境束缚.保证系统兼容性. iTestin自动化测试工具特点:   1、全面的自动化测试   提供业界最全面的自动测试服务类型:兼容测试、性能测试、功能测试。真实记录测试过程,返回测试结果。测试结果包括:安装时长、启动时长,CPU占用、内存占用、界面截图、Log日志,Bug原因及分析等。   2、支持基于Android的应用、手游的复杂脚本录制   全球首款支持Android系统的自动化脚本工具,采用黑盒测试,为移动开发者提供基于批量终端的功能测试、脚本录制回放,及测试记录的功能。支持多功能点的应用、手游的脚本录制,支持长按、划屏、输入账号、密码等的深度遍历操作录制。   3、快速交付   支持记录在移动终端设备上记录操作行为;生成、编辑脚本文件;支持在本地设备上反复回放验证、运行,调试,并记录回放结果。iTestin还支持将录制好的脚本上传至Testin真机云测试平台,在大批量终端上进行功能测试验证。   4、标准化报告   Testin为开发者提供最专业、最详细的测试报告,采用黑盒测试忠实记录脚本在真机上的运行过程,自动生成屏幕截图和Log日志等,帮助开发者快速找到Bug原因。 iTestin自动化测试工具重点功能:   a、 连接和管理连接在PC上的终端设备,包括Phone和Pad。   b、支持在终端设备上记录操作行为、自动生成屏幕截图、Log日志等,并可生成相应脚本上传至iTestin平台。   c、支持在终端设备上记录操作行为、生成脚本文件。支持在终端设备上反复回放脚本进行本地验证并记录回放结果。自动导出错误屏幕截图和Log日志等。   d、支持在PC上上传录制脚本文件和应用包到Testin平台,在Testin云测终端云的其他终端上按脚本执行应用程序做功能测试。 主要升级内容: 版本号:3.0.1-beta 1、编辑脚本时,右键菜单增加“修改”功能,用户可直接修改延时时长 2、客户端界面底部增加“查看更新信息”功能,可以查看最新更新信息 3、完善控件录制功能,修复某些应用引导界面无法正常识别控件的问题 4、完善控件录制功能,使客户端画面与终端实际画面保存同步 5、完善控件回放功能,使回放结果检查更准确 6、优化提交脚本界面和云测试界面分别增加loading提示
iTestin3.0.1版本: 简单.强大.专业。 iTestin 基于真实终端设备的脚本录制、回放,验证工具。友好、简便的操作界面,强大的脚本录制功能。适用于Android系统下的Phone和Pad。从简单到深入为Android应用程序测试. iTestin3.0.1实用功能概括: 控件识别与坐标录制脚本 支持脚本本地编辑功能 支持滑屏,长按等操作 支持账号及复杂文本的输入 支持断言、休眠、截屏等脚本操作 支持插入、删除、编辑操作 支持脚本在不同分辨率安卓终端上运行 支持脚本上传云端千款终端同时测试 WindowsXP及以上操作系统.运行畅通,挣脱环境束缚.保证系统兼容性. iTestin自动化测试工具特点:   1、全面的自动化测试   提供业界最全面的自动测试服务类型:兼容测试、性能测试、功能测试。真实记录测试过程,返回测试结果。测试结果包括:安装时长、启动时长,CPU占用、内存占用、界面截图、Log日志,Bug原因及分析等。   2、支持基于Android的应用、手游的复杂脚本录制   全球首款支持Android系统的自动化脚本工具,采用黑盒测试,为移动开发者提供基于批量终端的功能测试、脚本录制回放,及测试记录的功能。支持多功能点的应用、手游的脚本录制,支持长按、划屏、输入账号、密码等的深度遍历操作录制。   3、快速交付   支持记录在移动终端设备上记录操作行为;生成、编辑脚本文件;支持在本地设备上反复回放验证、运行,调试,并记录回放结果。iTestin还支持将录制好的脚本上传至Testin真机云测试平台,在大批量终端上进行功能测试验证。   4、标准化报告   Testin为开发者提供最专业、最详细的测试报告,采用黑盒测试忠实记录脚本在真机上的运行过程,自动生成屏幕截图和Log日志等,帮助开发者快速找到Bug原因。 iTestin自动化测试工具重点功能:   a、 连接和管理连接在PC上的终端设备,包括Phone和Pad。   b、支持在终端设备上记录操作行为、自动生成屏幕截图、Log日志等,并可生成相应脚本上传至iTestin平台。   c、支持在终端设备上记录操作行为、生成脚本文件。支持在终端设备上反复回放脚本进行本地验证并记录回放结果。自动导出错误屏幕截图和Log日志等。   d、支持在PC上上传录制脚本文件和应用包到Testin平台,在Testin云测终端云的其他终端上按脚本执行应用程序做功能测试。 主要升级内容: 版本号:3.0.1-beta 1、编辑脚本时,右键菜单增加“修改”功能,用户可直接修改延时时长 2、客户端界面底部增加“查看更新信息”功能,可以查看最新更新信息 3、完善控件录制功能,修复某些应用引导界面无法正常识别控件的问题 4、完善控件录制功能,使客户端画面与终端实际画面保存同步 5、完善控件回放功能,使回放结果检查更准确 6、优化提交脚本界面和云测试界面分别增加loading提示
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cdtaogang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值