手把手教你TestComplete_行为模式设计和分析

2024-03-26 02:58

本文主要是介绍手把手教你TestComplete_行为模式设计和分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

 

 

本来以为不会再写TestComplete的系列文章了,没想到工作上又用到了,场景是这样的,先看下图:

 

001.jpg

 

 

 

这是一个测试工具叫做Clearquest,用于记录defect,在查询出结果后,导出列表,但是由于列表中的Description内容太长,不单无法显示完整内容,导出的文件中,该字段的内容也是不全的。找了半天,也没有找到设置方法。只好决定写个小工具来将每个defect的Description的内容贴出来,写进excel文件(这个内容此处不做讨论和讲解)。

 

首先描述一个普通操作者的行为模式:

1.         保证页面的初始状态,光标在第一页;

2.         点击列表中的第一条

3.         点击下面显示的Description

4.         按键ctrl+a和ctrl+c

5.         点击列表中的下一条

6.         点击下面显示的Description

7.         按键ctrl+a和ctrl+c

8.         当页操作完成后,点击右边的滚动条

9.         找到相应的记录,进行点击

 

这个行为模式有几个问题:

1.         如何判断什么时候该点击右边的滚动条

别跟我说当页完成就该点了,需要用技术语言来描述。

如果知道该表的总行数,还得知道当页的行数,你可以写死当页的行数,技术上是可以实现的

 

2.         如何确定点击哪一行

首先需要知道自己该点击哪行,这个有循环记数,应该知道的,到时候点就是了

 

3.         如何点击滚动条

别点击中间,要点击整个滚动条的最下端,如果数据多的话,这个最下端需要非常的精确,否则可能页面没有翻到最后一页。

 

4.         如何知道滚动条点击后,页面刷新完成

注意这是代码实现的,在人看来,点击滚动条后瞬间完成了,但是对于代码来说,很可能要点击相应的行的时候,该行还没有出现在页面上呢。需要设置多长的自动等待时间比较合适呢,这个可以估摸着来,设置长了,等待时间太多,设置短了,很快就会报错说找不到某某行,或者报错说某某行不在屏幕上

 

 

 

 

优化后的行为模式:

1.         保证页面的初始状态一致,光标停留在第一行;

2.         点击Result Set

3.         按向下的箭头

4.         点击下面显示的Description

5.         按键ctrl+a和ctrl+c

6.         点击Result Set

7.         按向下的箭头,直到结束

8.         点击下面显示的Description

9.         按键ctrl+a和ctrl+c

 

可以看到,这个行为模式更简单,避免了翻页滚动条的操作和行的定位与显示的匹配。

 

不过实际上,实现的时候仍然有问题需要注意,在粘贴出Description的内容后,不可以立刻用代码取出来,而是需要等待一下,具体时间跟粘贴出的内容大小有关,以我的这个情况,最长的也就三五百个字,有100毫秒就可以了,否则读取的时候系统粘贴板里面还没来得及写进去呢。

 

 

 

在自动化测试中,有几个地方需要考虑周到一些:

 

1.  能使用键盘尽可能减少鼠标操作;

2.  在操作完成后,下一个动作执行的前提条件是否能够迅速实现。经常出现的意外情况是,上一个操作完成了,页面进行自动刷新,在刷新的过程中,某个对象已经进入了内存,于是调用了点击动作,但是该对象还没有来得及在页面上显示出来,于是该点击动作是无效的,新的窗口没有弹出,于是报错,提示窗口找不到。比较狠的处理方式是在这个老是出问题的地方,别直接点击对象,看下该对象的VisibleOnScreen是否为True。要还有问题,试试改为SendKey(“[Enter]”);

3.  保持环境的干净,常见情况是QQ弹出来一个消息框,告诉你最新的新闻是啥,刚好挡住了操作的页面,回头又该提示你找不到什么对象了。

 

 

这个代码非常简单,就不附录了。

 

 

 

 

 

这篇关于手把手教你TestComplete_行为模式设计和分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/847074

相关文章

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

Java集成Onlyoffice的示例代码及场景分析

《Java集成Onlyoffice的示例代码及场景分析》:本文主要介绍Java集成Onlyoffice的示例代码及场景分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 需求场景:实现文档的在线编辑,团队协作总结:两个接口 + 前端页面 + 配置项接口1:一个接口,将o

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File

Dubbo之SPI机制的实现原理和优势分析

《Dubbo之SPI机制的实现原理和优势分析》:本文主要介绍Dubbo之SPI机制的实现原理和优势,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Dubbo中SPI机制的实现原理和优势JDK 中的 SPI 机制解析Dubbo 中的 SPI 机制解析总结Dubbo中

C#继承之里氏替换原则分析

《C#继承之里氏替换原则分析》:本文主要介绍C#继承之里氏替换原则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#里氏替换原则一.概念二.语法表现三.类型检查与转换总结C#里氏替换原则一.概念里氏替换原则是面向对象设计的基本原则之一:核心思想:所有引py