QTP运行缓慢的常见原因

2024-05-09 08:32
文章标签 常见 运行 原因 缓慢 qtp

本文主要是介绍QTP运行缓慢的常见原因,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 脚本中有太多的Wait语句

分析:Wait语句的意思是一直等到超时时间后才继续执行脚本,等待的时间是固定的,这样就会造成时间浪费,导致脚本运行缓慢。

解决方法:使用ExistSyncWaitProperty方法来代替wait

2. 开启了智能识别

分析:QTP在识别对象的过程中如果对象的强制属性和辅助属性还不能唯一匹配到对象的话,会激活智能识别模式,由于智能识别的算法复杂,会消耗一定的资源开销,所以导致脚本运行缓慢。

解决方法:全局关闭(File-->Settings-->Run)或者部分关闭智能识别(Tools-->ObjectIdentification根据对象类型)

3. 由于错误页面而找不到对象导致的对象同步超时

分析:由于操作步骤错误或者环境原因,打开了一个错误的页面,使得后续的对象都无法找到。比如我需要在同一个页面操作10个对象,而恰巧由于网络问题网页发生错误,如果每个对象的默认超时时间是20秒的话,那么10个对象就是200秒,也就是说一旦页面跳转错误,是非常容易导致脚本运行缓慢的!

解决方法:确保业务流程正确、尽量减少环境因素对自动化测试的影响、使用恢复场景来处理错误页面

4. 脚本中ChildObjects 方法过多使用

分析:ChildObjects方法一般都是采用循环遍历,无疑会加重系统资源开销,如果再加上网页的元素很复杂的话,那么势必会影响脚本的性能。

解决方法:尽量避免使用子对象的方法去操作对象,可以用DOM的方式代替

5. 脚本的循环体中有过多冗余循环

分析:有时我们会在一个循环体中再增加一些条件分支语句,用于满足特定的测试需求,如果循环次数少的话那还好,但要是循环次数非常多的话就会大大降低脚本性能。

解决方法:在循环体的选择分支语句中根据测试需求适当增加Exit ForExit Function之类的语句

6.恢复场景的激活方式设置为"On every step"

分析:恢复场景的触发方式有三种:On every stepOn errorNeverOn every step的意思在每一步运行完后激活恢复场景,去探测场景设置中的trigger有没有触发,这种做法同样也会降低脚本的性能。

解决方法:激活方式选用On error(可能会Miss一些场景)、手工激活恢复场景(Recovery对象)

7. 默认同步时间设置过长

分析:在QTP的运行设置中默认对象同步的超时时间是20秒,如果是测Web程序的话还有60秒导航超时时间。

解决方法:在File-->Settings选项中调低默认的超时时间

8. QTP的运行模式没有设置成Fast

分析:QTP的运行模式分为NormalFastNomal模式允许在每一步运行完后都有延迟时间,而Fast模式则没有延迟时间。

解决方法:在Tools-->Options-->Run中设置运行模式为Fast

9. 开启了自动截图功能

分析:自动截图功能对于脚本的出错调试提供了很大的方便,能使我们以更直观的方式去分析和定位错误,但同时在一定程度上也会使我们的脚本运行缓慢。

解决方法:在Tools-->Options-->Run选项中禁用自动截图功能,如果确实需要此功能那么可以选择"Forerrors"或者"For errors and warnings"


10. 开启了视频录制功能

分析:和截图一样,视频录制功能同样可以使我们更方便地回溯脚本运行的整个过程,但是其代价也是牺牲性能。

解决方法:在Tools-->Options-->Run选项中禁用视频录制功能

11. 开启了系统实时监控

分析:系统实时监控是为了在运行自动化测试的同时,获取一些系统的性能数据,比如内存占用率,CPU占用率,硬盘读写速度等等,通常是用来满足性能测试的需要。如果设置的监控时间太频繁的话,也会对脚本的性能造成一定影响。

解决方法:在File-->Settings-->Local System Monitor选项中禁用系统实时监控,或者将监控的间隔时间设置得长一些。

 

[以上所说的各种影响脚本运行缓慢的设置问题都是基于QTP10.0版本的,如果版本不同,可能该设置所在的菜单位置不同,甚至有些功能也没有。如果遇到这种情况的,请自动忽略该条



这篇关于QTP运行缓慢的常见原因的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

在C#中调用Windows防火墙界面的常见方式

《在C#中调用Windows防火墙界面的常见方式》在C#中调用Windows防火墙界面(基础设置或高级安全设置),可以使用进程启动(Process.Start)或Win32API来实现,所以本文给大家... 目录引言1. 直接启动防火墙界面(1) 打开基本防火墙设置(firewall.cpl)(2) 打开高

MySQL中如何求平均值常见实例(AVG函数详解)

《MySQL中如何求平均值常见实例(AVG函数详解)》MySQLavg()是一个聚合函数,用于返回各种记录中表达式的平均值,:本文主要介绍MySQL中用AVG函数如何求平均值的相关资料,文中通过代... 目录前言一、基本语法二、示例讲解1. 计算全表平均分2. 计算某门课程的平均分(例如:Math)三、结合

MyBatis Plus中执行原生SQL语句方法常见方案

《MyBatisPlus中执行原生SQL语句方法常见方案》MyBatisPlus提供了多种执行原生SQL语句的方法,包括使用SqlRunner工具类、@Select注解和XML映射文件,每种方法都有... 目录 如何使用这些方法1. 使用 SqlRunner 工具类2. 使用 @Select 注解3. 使用

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

Redis高性能Key-Value存储与缓存利器常见解决方案

《Redis高性能Key-Value存储与缓存利器常见解决方案》Redis是高性能内存Key-Value存储系统,支持丰富数据类型与持久化方案(RDB/AOF),本文给大家介绍Redis高性能Key-... 目录Redis:高性能Key-Value存储与缓存利器什么是Redis?为什么选择Redis?Red

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”