以初学者角度介绍TestComplete的使用

2019-01-11   出处:埃森哲测试中心  作/译者:Shuyan

  • 使用背景

在上一个Automation Project中有幸使用了TestComplete自动化测试工具,作为一只小菜鸟,第一次接触到融合了界面录制和脚本的工具,简直不要太好用。

引用一下百度百度的介绍:“TestComplete为Windows、.NET、Java和Web应用程序提供了一个特性全面的自动测试环境。将开发人员和QA部门人员从繁琐耗时的人工测试中解脱出来。 TestComplete测试具有系统化、自动化和结构化特性,支持。NET,Java,Visual C++, Visual Basic, Delphi, C++Builder 和web应用程序。”

在项目上我使用的是TestComplete12.5,该版本支持的脚本语言有:JavaScript,Python,VBScript,DelphiScript,Jscript。由于项目本期的最终目的是封装一个在Excel上使用的自动化工具供客户使用,为了与Excel更好地兼容,我们选择的脚本语言是VBScript,所以接下来的使用方法中关于转换脚本的介绍也会选择VBScript来举一个例子。

  • 使用方法

1. 下载

进入https://smartbear.com,在导航栏中products下点击TestComplete

点击TRY TESTCOMPLETE FREE,待填写完个人资料后点击START TRIAL即可开始下载安装包啦。试用版的有效期限为30天,在打开TestComplete时可通过WorkSpace的StartPage查看到剩余有效期,过期后如若还想使用请购买正版license。

2. 创建项目

New一个project对于大家来说应该是一个再熟悉不过的操作了吧,填写项目名,选择好存放路径,然后就可以NEXT了。

Tested application可以先忽略,在选择脚本语言的时候选择VBScript就可以Finish啦。

一个项目中需要留意以下组成部分:

Script & KeywordTests : 录制的内容可以以Script或KeywordTests的形式呈现,其中KeywordTests可以转换成Script,但是Script不可以转换成KeywordTests,所以这里建议录制的时候选择Record Keyword Test。

NameMapping & TestedApps : NameMapping是用来存放录制过程中操作的有效对象,称为对象库;TestedApps则是存放被测试的应用对象,录制过程中会自动保存,也可自己手动添加。

Project Suite Logs : 录制完的脚本一旦执行,生成的日志就会存放在该目录下,可以查看到具体的执行过程,每一步有效操作都会有相应的snapshot。

3. 录制

在录制之前首先需要注意两点:

  1. 对录制流程的熟悉,在录制之前确认好录制的流程,建议先手动操作3遍;

  2. 准备好测试数据,事先对录制流程中需要输入的数据进行确认。

点击录制按钮即可开始录制自动化脚本了,只需按照计划好的操作流程和准备好的测试数据进行操作即可,流程操作结束后点击stop即可完成录制。

在录制过程中需要注意以下三点:

  1. 录制过程中不要出现多余的步骤;

  2. 在录制过程中保证数据的准确性;

  3. 注意保持好适中的操作速度,过快可能出现识别不到对象导致缺少步骤,过慢可能导致出现多余的步骤。

4. 增加checkpoints

在录制的流程中增加一些checkpoints可帮助判断步骤的顺利执行,例如录制打开浏览器,输入www.baidu.com ,按下Enter键后想检查是否顺利打开百度界面,可在当前步骤后增加一个检查百度Logo是否存在的checkpoint。

首先在录制的Keyword Test中选中要增加check point的步骤,如上案例选中Enter步骤,然后点击当前页的Append to Test,当在页面上识别到检查对象时会出现一个加号,点击加号选择”Exist=True”可以快速增加一个检查对象是否存在的check point。

5. 回放

录制完的Keyword Test如下图,Item指的是录制的对象,Operation则是对应的操作,Value则是对应的测试数据,Description是对该步骤的描述。录制完成后即可自动生成,且在下方可查看到每一有效步骤的截图,是不是感受到TestComplete的方便之处了呢。

在完成录制脚本之后:

  1. 先根据Keyword Test的步骤以及对应的截图过一遍录制的流程以确认脚本无误;

  2. 若有多余的步骤请删除;

  3. 确认无误后即可点击Run Test进行回放。

6. 参数化

对脚本进行参数化可灵活操作输入参数及输出变量,在参数化前,需要:

  1. 确认需要修改的数据

  2. 找到相应的步骤

  3. 添加一个参数并替换到步骤当中

这里我们将输入参数添加在parameters中,输出变量添加在variables中,为了更好地区分输入参数和输出变量,我们采用了用p开头命名输入参数,用v开头命名输出变量的命名规则。

对于输出变量的操作,先在variables中添加变量,然后在左侧operation中找到Set Variable Value,拖拽至对应步骤中,设置好变量和变量的取值,这里我通过录制点击对象拿到对象路径,再到对象库中查看文字属性。

7. 转换脚本

右键点击需要转换的Keyword Test选择Convert to Script,选中对应的脚本文件,即可转换成script啦。

8.  在script中编写single scenario

通常录制的Keyword Test,会拆分成多个复用率高的flow,以达到在不同的用例中可以重复调用,无需多次录制重复的步骤,而录制好的Keyword Test也可供Script直接调用。

想要执行single scenario时只要在该scenario的脚本范围内右键点击Run Current Routine即可执行。

9. 日志

用例执行完成时会直接把日志打开,也可在项目目录下方找到日志记录。Log Items中可直接查看本次执行结果状态,Test Log则可查看到每一个详细步骤的执行结果,日志记录过多时可勾选想要查看的日志内容类型进行查看,双击每一条记录可以直接跳转到具体的脚本中。

  • 注意事项

  1. 录制的流程建议开始和结束保持在同一界面以形成一个闭环。

  2. 添加或修改parameters和variables时别忘了保存,在修改完后需要点击其他位置出现*号再做保存,否则可能不生效。

  3. 不同script之间互相调用时,用 ‘USEUNIT ScriptName的形式来引入,虽然单引号看似注释了本行,实际上是可以通过编译的哦

4. 在KeyWord Test或Script中适当地添加Log信息可以帮助你在查看日志的时候更加清晰地判断每一条记录的实际操作,也可输出变量来帮助定位问题。当然,多余的Log信息反而会增加查看日志的难度。

5. 在录制KeywordTests后,善用IF可提高一个flow的灵活性和复用率,例如:

  1. 当某些操作不一定固定出现时,可添加一个IF判断条件,判断该窗口存在时应该做什么操作,如若不存在则直接忽略相应操作。

  2. 通过判断条件检查对象的值是否与预期一致

  3. 在一个flow中,通常可将同类操作流程统一放置,然后根据传入参数区分部分不同的操作对象,提高一个flow的复用率

作者介绍:

Xing,Shuyan

以初学者角度介绍TestComplete的使用相关推荐

  1. 如何以初学者角度写好一篇国际学术论文?

    来源:AI科技评论 本文约7000字,建议阅读15分钟 本文为你分享写好一篇国际学术论文应该注意哪些方面? 人工智能顶会论文之争越来越激烈了,CVPR.AAAI.ICLR等各大会议虽然录取率逐年降低, ...

  2. 容器,VM和Docker的初学者友好介绍

    by Preethi Kasireddy 通过Preethi Kasireddy 容器,VM和Docker的初学者友好介绍 (A Beginner-Friendly Introduction to C ...

  3. 自我介绍 的html页面,html初学者自我介绍网页

    html初学者自我介绍网页 页面三: 微软中国打算在寒假招聘一批网站部门的实习生,表现优异者可以直接签约,甚至将与比尔盖茨同楼办公,但是要求发一个申请网页过去. 请你制作一个网页,内容为申请做实习生, ...

  4. 一位久经沙场的嵌入式er站在初学者角度谈谈嵌入式开发与学习的一些问题

    一位久经沙场的嵌入式er站在初学者角度谈谈嵌入式开发与学习的一些问题 在刚刚涉足嵌入式开发的时候,总想找到这样一本书,它可以解决我一些这样那样的疑惑.但是遗憾的是,到现在也没有这样一本书面世,而且我想 ...

  5. 初学者Web介绍一些前端开发中的基本概念用到的技术

    Web开发是比较费神的,需要掌握很多很多的东西,特别是从事前端开发的朋友,需要通十行才行.今天,本文向初学者介绍一些Web开发中的基本概念和用到的技术,从A到Z总共26项,每项对应一个概念或者技术. ...

  6. mysql初学者_MYSQL初学者使用介绍

    二.显示命令 1.显示数据库列表. show databases; 刚开始时才两个数据库:mysql和test.mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库 ...

  7. 【Java】初识泛型(带你从初学者角度切入,通俗易懂,速进)

    2022.11.29 西安 初雪- 泛型在Java中十分重要,也比较难理解,本文旨在让初学者有大概的理解. 一.什么是泛型 1.1 引入泛型 一般的类和方法,只能使用具体的类型: 要么是基本类型,要么 ...

  8. 深入剖析Spring(一)——IoC的基本概念(从面向对象角度介绍)

    IoC与DI IoC和DI是Spring的两个核心概念,很多人都把它们视为相同的东西,但事实并非如此. IoC(Inversion of Control):控制反转. DI(Dependency In ...

  9. 适合企业使用的服务器虚拟机EXSI ,ERP,OA等服务器部署。第一节:以一个应用者角度介绍并使用EXSI

    适合企业使用的服务器虚拟机EXSI6.7 exsi7 ,ERP,OA等服务器部署 小白服务器部署目录 适合企业使用的服务器虚拟机EXSI6.7 exsi7 ,ERP,OA等服务器部署 前言 一.EXS ...

最新文章

  1. 影像组学视频学习笔记(27)-SimpleITK包介绍、Li‘s have a solution and plan.
  2. Python常用的几种去重方式
  3. 用Fortify SCA分析代码漏洞
  4. Web 仿 App 动画竟然引出了“性能杀手”
  5. quantaxis 云服务器_量化金融策略开源框架:QUANTAXIS
  6. Matlab与simulink中的数据类型
  7. 数据结构期末复习之选择排序
  8. 盘一盘 Thread源码
  9. rhel5.5下安装oracle10g报libXp.so.6错误
  10. vue 对象继承_JS面向对象—对象的继承
  11. [AT2306]Rearranging(拓扑序)
  12. 算法设计与分析基础 第四章谜题
  13. 后端向前端返回图片URL,并向后端传递base64格式URL
  14. UML统一建模语言是什么?
  15. QuartusII 15.0 中解决仿真报错 Error : vism-19 Faild to access library问题
  16. 蚂蚁集团副总裁,任复旦大学人工智能学院院长!
  17. 巫师编程语言“咒语” 设想
  18. 计算机按键不灵怎么回事,电脑键盘失灵,教您电脑键盘失灵怎么办
  19. 对高尔顿数据集实现线性回归分析
  20. 两分钟解决IntelliJ IDEA中文乱码问题

热门文章

  1. 塞拉利昂首次秘密进行基于区块链的总统选举
  2. Navicat Premium 12 中文版v12.1.19
  3. OPC UA客户端工具Softing OPC Client使用_推荐使用
  4. 创客集结号:国内无人机技术发展的难点有哪些?
  5. 哪种耳机对听力伤害小?骨传导耳机能保护听力吗?
  6. MWC 2017:S8缺席,三星祭出AR/VR项目救场
  7. Discussion 2
  8. 从排名看主流半导体厂商在3G市场的策略与心态
  9. 如何用matlab解异或方程,Matlab-6:解非线性方程组newton迭代法
  10. 地理坐标xy表示什么_地理坐标怎么写 书写格式及方法