❶ QTP脚本运行很慢,要怎么解决
QTP占用系统资源较多,电脑配置达不到要求。
解决方案有两个选择:
换高配置的电脑
换轻量级的自动化测试工具
❷ 怎么学习自动化测试
首先,想从事自动化测试,必须先了解What/Why/How,也就是常说的去了解什么是自动化测试、为什么要进行自动化测试、该如何进行自动化测试,这类的资料在网上有很多,这里就不做重复了; 其次,需要根据项目的特点,选择合适的自动化测试工具,并了解工具的特性。以QTP为例,该如何去掌握它呢?对于初学者,大多数都是通过录制的方式来生成脚本,这个阶段应该掌握的基础知识有:1) QTP是如何去识别对象的,对于新手经常会出现录制的脚本回放的时候报错的现象,这个时候就应该考虑为什么呢?如果很了解QTP识别对象的原理啊,我想就能很快定位到原因了2) 去掌握一些QTP对象的方法,如GetROPreperty、GetTOPreperty、ChildObjects等等,对于相似的方法应该去搞清楚到底区别在哪?像GetROPreperty、GetTOPreperty有什么区别等3) 什么是Action参数、什么又是Test参数?两者有什么区别,又有什么联系,在同一Test和不同Test间这些参数如何工作4) 什么是环境变量?环境变量是如何建立和使用的,环境变量在参数传递中和action参数、test参数有什么不同5) 了解检查点的知识,明白什么是内置检查点,什么又是自定义检查点。并搞清楚在什么时候该如何使用检查点6) 掌握对象库的操作,了解对象库对于测试的意义,象是否启用智能识别对测试脚本有何影响、为什么同一对象识别起来会有_1、_2之类的后缀等都是需要去研究清楚的问题这几个问题都搞清楚的话,那基本就能够利用QTP生成正确的脚本了,当然以上只是部分必须掌握的内容,其实还是很多细节的设置,就需要在实际运用中去掌握了。接下来,就可以进一步提升自己的QTP运用水平了,这个阶段就需要去学习vbs知识和如何运用描述性编程实现脚本了,同时在这个过程中还需要去学习html知识、DOM、XML、以及像excel、word等的API知识了,总的来说,这个阶段应该掌握的内容大体上包括:1) VBscrīpt的基础知识,熟悉常用的方法和函数,掌握文件对象的操作等2) 熟练掌握XML技术;excel、word等API对象,可以根据需要创建日志等3) 熟练掌握DOM和HTML知识,能够结合这些技术对Web页面进行解析4) 掌握数据库的基本操作语句,能够利用ADO对象进行数据操纵5) 熟练掌握正则表达式,很多时候处理对象问题相当方便6) 掌握如何调用dll进行工作7) 能够利用QTP的自动化对象模型创建出需要的运行模式8) 掌握WMI知识以上只是我考虑到的部分,并不全面,呵呵,供大家参考,当然这些技术主要是针对Web系统运行,因为我们的系统就是B/S的,呵呵。如果这些知识都能够扎实的掌握的话,个人认为,基本上能够处理自动化过程中的绝大多数问题了,这个时候你对自动化测试的技术应该是有一定积累了。接下来就需要考虑自动化测试框架问题了。当脚本规模到了一定的程度,就会面临一些问题,如:1) 如何有效的管理并调度脚本2) 如何实现脚本运行的无人值守,测试过程中能够自动进行错误处理并进行日志记录3) 如何生成简介明确的测试报告4) 如何能够更加高效的维护测试脚本5) 实现框架代码和业务代码的分层、业务脚本和业务数据的分离这个阶段主要体现的是测试人员的测试思想,是可以脱离工具独立存在的过程。当然各个公司项目的实际情况不同,导致设计出来的思想不同,但总体上来说一般包括数据驱动和关键字驱动两种模式。后者实现的技术难度大于前者,大多数公司目前都采用的数据驱动模式。这个阶段不应局限于技术运用上,而需要从测试全局考虑,进行分层设计、模块化实现,减少代码之间的耦合。如果以上三个方面都能够做的很好的话,那么恭喜你,你已经可以独立负责项目的自动化测试建立工作了,呵呵!总之,学习自动化测试需要在实际项目中进行,这样提高的会比较快,项目中运用了很多种技术,自动化实施过程会碰见各种各样的问题,是很好的学习机会,关键要善于总结、积累经验,只要能够把各个细节做好,那么你一定能够成为一名优秀的自动化测试工程师。
❸ TC和按键精灵哪个执行效率高
个人觉得TC执行速度要比按键块,而且内存和Cpu占用方面,TC消耗比较少,按键的话,写个脚本的都知道,随着脚本运行时间越久,内存和cpu都是暴涨的。
大家可以按代码测试一下,纯属个人兴趣,不对任何工具有贬低的意思
int time,time2
time=辅助.获取系统毫秒()
int i
i=0
while(i<20000)
整型 x
整型 y
鼠标.获取坐标(x,y)
鼠标.移动(x,y)
i=i+1
endwhile
time2=辅助.获取系统毫秒()
help.messagebox(转换.整型转字符型(time2-time))
按键精灵代码:
j = 0
s = Plugin.Sys.GetTime()
While j<20000
GetCursorPos x, y
MoveTo x, y
j=j+1
EndWhile
//当循环条件成立的时候,反复执行循环体
s2 = Plugin.Sys.GetTime()
Msgbox "您的脚本从启动到结束时间:" & s2-s & "毫秒"
我是对两个同样的功能 读取坐标和移动坐标, 都是执行20000次,下面有图对比结果
对比的结果是:
TC的运行时间是 2420毫秒
按键的运行时间是 4630毫秒
❹ 【关于如何解决QTP后期运行速度】
目前项目中的QTP脚本运行速度,会随着时间的增长而脚本的速度降低,特别是跑了7,8个小时后这种情况越是明显。脚本主要偏向描述的使用,对象库为辅。导致了其中的原因个人分析大概有一下几点: 1,PC机本身的问题。有时候更糟糕的是提示虚拟内存不足(2G物理内存3G虚拟内存)。大家都有这样的感觉,就算不跑QTP,PC机在自己运行一段时间后,操作响应速度会很明显下降,这个和机器性能有很大关系,一台服务器与一台PC机器跑一个晚上的脚本第2天会发现PC机的程序已经跑不动了,即使有做脚本错误恢复处理,包括重启IE,设置标签等方法再跑,但还是跑不动。 2,系统庞大,如果大概有2100个不同web页面,当脚本跑不到一半时候速度也会明显下降,系统的临时文件,cookies等的增多,所导致的响应速度降低,会出现IE呈现白色page不无法操作的情况。 3,脚本在编写过程,忽略对对象的释放操作,这个或者是非程序员的一个通病吧,因为在小的程序或者脚本中,对象释放与否看不出什么效果,但小数怕长计,也会导致QTP本身所占用的系统资源增多。 4,脚本编写思想。脚本中过度偏向递归使用,深度越大,函数调用与递归增多,对象增多等,会导致QTP到后期时候速度会有所回落,有时也会让QTP出现假死状态,有可能是内存溢出的情况发生。 5,过分依赖错误处理与智能对象识别。或者很多人说,智能识别不推荐使用,但是,当一个脚本和滚雪球一样,递归也多了,程序的可控性就降低,跟踪难度增大,脚本的维护成本就增多,所以选择维护与开启智能识别时候,后者有更大的优势。由于依靠了智能识别,有时候一些结果报告中会看到很多对象识别不到而懒得去找原因。积累多了问题也会慢慢浮现出来。 6,网页访问残留,比如说你的表单提交后再回退时,表单里填写的数据还在,这些就是残留在内存里的数据,但一般来说残留量是非常少的。 所以如何在QTP的运行过程中,及时的释放系统资源有着很重大和深远的意义。引用:原帖由lantianwei于 2008-9-11 14:38 发表写的非常不错,支持一下!好像没提到解决办法啊标题是讨论,嘿嘿。目前解决的方法:1,重启服务器IIS,但是这个过程会让测试停止。2,清理本机的IE文件3,利用外部程序实现间断清理(我记得超级兔子有个可以做到内存清理的工具)1.为什么要重启IIS呢?想不明白重启IIS和本机QTP执行脚本速度慢有什么直接的联系啊;2.清理本机的IE文件有啥用呢?本机的IE文件只不过占用的磁盘空间,貌似也和QTP执行脚本速度没有直接联系吧;3.利用外部程序实现间断清理:这个觉得的确会对提高运行速度有一定帮助,但问题是QTP这么娇嫩的软件,谁敢在它跑的时候频繁清理内存?谁又能保证不出错呢?呵呵引用:原帖由xiaoyaoke于 2008-9-11 17:35 发表1.为什么要重启IIS呢?想不明白重启IIS和本机QTP执行脚本速度慢有什么直接的联系啊;2.清理本机的IE文件有啥用呢?本机的IE文件只不过占用的磁盘空间,貌似也和QTP执行脚本速度没有直接联系吧;3.利用外部程序实 ... 1,同个IE做的2000多次的页面跳转,如果IE没关闭,哪么IIS里的一些连接没有断开就资源没释放,导致了服务器响应时间增长。这个或者是程序写的不完善也有关系,应用程序很多资源没有释放导致。2,占磁盘控件确实是,但也不大,也就哪么几M,但同个IE经过2000次的页面跳转,到了后期页面变白,我能想到的就只有这点了,或者这个会和第三点有关系。3,使用外部程序,这个对QTP是否有影响,还是要以后日子慢慢验证。引用:原帖由假装不在于 2008-9-12 10:13 发表1,同个IE做的2000多次的页面跳转,如果IE没关闭,哪么IIS里的一些连接没有断开就资源没释放,导致了服务器响应时间增长。这个或者是程序写的不完善也有关系,应用程序很多资源没有释放导致。2,占磁盘控件确实 ... 这方面,应该与你自己编写的脚本有关吧,你可以把一个Test割成多个Test来做啊。脚本问题不大。早期运行速度相当的快,时间越长,脚本的速度越下降。在找原因了,现在个人基本确定2个问题,1,浏览器占内存问题,这个下午2点后就有结果。2,服务器IIS问题。我只有一个TEST,理论上这个如果最快的速度跑完,也要10个小时。中午测试时候发现,脚本在开跑,IE占的内存是:41004,跑了2个小时后,内存占的是143728 使用内存整理工具无效。刷新页面后让内存减少到38147
❺ 测试脚本的工作
1.脚本语言的特点,通过下面tcl/tk与C++和java的比较就可见一斑。
2.C++,Tcl/Tk 和 Java 的性能比较高
3.C++
4.Tcl/Tk
5.Java
6.运行程序速度
7.快
8.与 C++ 可比
9.慢
10.调试难易程度
11.复杂 每次修改完代码需重新编译
12.简单 修改完代码可直接运行
13.比较简单 修改完代码需重新编译成 ByteCode, 而且编译速度很慢
14.程序代码复杂程度
15.复杂
16.简明
17.比较简单
18.系统资源占用情况
9.1200MB HD 32MB Memory
20.3MB HD 4MB Memory
21.20MB HD 4MB Memory
22.代码可维护性
有一定难度,需要有面向对象程序设计的概念 脚本解释器是脚本语言工作的核心,所有具体指令或是函数的执行都由它来完成,扩展项实现了与其它语言的接口,使脚本语言运行C/C++,java等函数成为可能;同时在用户具体应用中可以定义命令和函数,应用更加灵活;作为解释器它也提供了基本的内建指令或是函数,不同厂商、版本的解释器提供的内建命令(函数)可能不同。
❻ 测试主板性能的软件有哪些
WinBench 99测试的是系统中各个子系统的性能,测试是针对CPU、磁盘和图形子系统等项目的。CPUmark 99反映了处理器、内部高速缓存的运行速度,而FPU WinMark则反映了处理器子系统的浮点运算能力。通过CPUmark 99和FPU WinMark的得分,可以衡量所测系统能否较好地发挥处理器的能力。商用Disk WinMark 99反映的是磁盘子系统(包括硬盘、硬盘控制器、硬盘驱动程序和硬盘高速缓存)的性能。它由不同应用程序中的磁盘操作组成测试脚本。该测试项目所反映的磁盘性能包括以下几个方面:Disk WinMark 99、寻道时间、传输速率和CPU占用率。高端Disk WinMark 99测试以高端Winstone 99套件中所使用的磁盘读写操作为依据,反映的是磁盘子系统的性能。测试的结果以千字节/秒表示。商用Graphics WinMark 99通过执行数据库、浏览器和任务切换等一系列应用程序,来考察图形子系统(包括芯片组、显存、驱动程序,以及系统内存和总线结构)的性能。它的得分以商用Winstone 99测试中所使用的大量GDI操作为基础,并为该得分进行标准化处理,以便能够反映用于商用Winstone 99测试的基本系统特性。高端Graphics WinMark 99以套件中所使用GDI操作记录为依据,反映的是图形子系统的性能。高端Winstone 99所调用的应用软件包括:Adobe Photoshop 4.01、Adobe Premiere 4.2、AVS/Express 3.4、Microsoft FrontPage 98、Microsoft Visual C++ 5.0、MicroStation SE和Sound Forge 4.0。 Winstone 99的测试项目包括了商用Winstone 99和高端Winstone 99,我们主要进行了商用Winstone 99的测试。Winstone 99反映了系统在实际商业设置下的整机性能。该套件对系统运行应用程序脚本所需要的时间进行测定,并产生一个综合值,然后再转换为一个相对得分。商用Winstone 99中使用了当今市场上最流行的办公软件,包括Corel WordPerfect 8、Lotus SmartSuite 97和Microsoft Office 97。Content Creation Winstone 2000考察的是系统在进行网页制作和其他多媒体应用时的整体性能。该测试套件包含6种应用程序脚本:Adobe Photoshop 5.0、Adobe Premiers 5.1、Macromedia Director 7.0、Macromedia Dream Weaver 2.0、Netscape Navigator 4.6和Sonic Foundry Sound Forge 4.5。在测试中Content Creation Winstone 2000会同时打开多个应用程序,并不断地在各个程序之间切换。3DMark2000是针对系统运行游戏能力的测试,包含了游戏场景和3D加速能力的测试。Quake 3 Arena是一款典型的游戏测试软件,我们分别用它们来衡量系统运行OpenGL游戏的性能。在Quake 3 Arena下,我们测试了Fastest、Fast、Normal和High Quality模式下各主板的性能。通过上面这些软件的测试,可以看出不同的测试软件测试时的侧重点是不一样的,但是如果你测试的时候已经将上面的测试软件全部运行了的话,相信你已经可以正确地了解你的主板的性能了!</FONT>
❼ 如何用loadrunner长时间运行脚本
通过软件测试工具LoadRunner 运行时设置,可以模拟各种真实用户活动和行为。例如,您可以模拟一个对服务器输出立即做出响应的用户,也可以模拟一个先停下来思考,再做出响应的用户。另外还可以配置运行时设置来指定 Vuser 应该重复一系列操作的次数和频率。 有一般运行时设置和专门针对某些 Vuser 类型的设置。例如,对于 Web 仿真,可以指示 Vuser 在 Netscape 而不是 Internet Explorer 中回放脚本。 1.打开运行时设置对话框。 确保“任务”窗格出现(如果未出现,请单击任务按钮)。单击任务窗格中的验证回放。在说明窗格内的标题运行时设置下单击打开运行时设置超链接。 也可以按 F4 键或单击工具栏中的运行时设置按钮。这时将打开“运行时设置”对话框。 2.设置“运行逻辑”设置。 在左窗格中选择运行逻辑节点。 在此节点中设置迭代次数或连续重复活动的次数。将迭代次数设置为 2。 3.配置步设置。 在左窗格中选择步节点。 此节点用于控制迭代时间间隔。可以指定一个随机时间。这样可以准确模拟用户在操作之间等待的实际时间,但使用随机时间间隔时,很难看到真实用户在重复之间恰好等待 60 秒的情况。 选择第三个单选按钮并选择下列设置:时间随机,间隔 60,000 到 90,000 秒。 4.配置日志设置。 在左窗格中选择日志节点。 日志设置指出要在运行测试期间记录的信息量。开发期间,您可以选择启用日志记录来调试脚本,但在确认脚本运行正常后,只能用于记录错误或者禁用日志功能。 选择扩展日志并启用参数替换。后面的课程将对此选项展开进一步讨论。 5.查看“思考时间”设置。 在左窗格中选择思考时间节点。 请勿进行任何更改。您可以在 Controller 中设置思考时间。注意,在 VuGen 中运行脚本时速度很快,因为它不包含思考时间。 6.单击确定关闭“运行时设置”对话框。
❽ selenium2.0下的WebDrivert在IE上通过xpath定位元素时如何提高测试脚本的速度
首先,selenium webdriver识别元素是个大难题,甚至有时候为了元素能够正确识别,甚至会延长等待时间,脚本执行的正确性比速度重要些。
然后再说IE Driver,如果用IE执行测试,不建议用xpath selecter定位,因为IE对xpath的支持不是很好,建议尽可能用id、name等定位方法,或者使用Css selecter。
当然,如果脚本很简单,纯追求速度的话,可以使用HtmlUnitDriver,不用打开浏览器运行测试,速度很快,但是限制也比较多,还要你自己实践研究了。
❾ 如何提高自动化测试的执行效率 selenium java
1. 环境准备
1.1 Java环境
安装, 配置jdk
1.2 Java IDE
因为Selenium支持Java/C#/Ruby/Python/Perl等,这里选择用Java。到Eclipse官方网站下载Eclipse, 解压
1.3 Selenium
到Selenium官方网站http://seleniumhq.org/download/下载Selenium IDE,Selenium Server, Selenium Client Driver
以上三者之间的关系是:
Selenium IDE可以录制脚本,执行脚本,修改脚本,将录制的脚本导出成其他语言(比如Java)---本篇不讨论
Selenium Server是和Selenium Client结合使用的,Server用来启动浏览器,接受Client端的请求,执行test;
Client端则是向Server端发送请求。
2. 在Eclipse中编辑并运行test
2.1 新建一个Java project: File-New-Java Project
2.2 在上一步建好的项目名称上点鼠标右键, 点击Build Path-Add External Archives...,将下载的selenium-java-2.21.0.jar(client)和selenium-server-standalone- 2.21.0.jar(server)加进来
2.3 启动selenium server.进入cmd,运行 "java -jar selenium-server-standalone-2.21.0.jar" --保证能找到改jar包。信息如下:
[java] view plain
信息: Launching a standalone server
22:16:21.484 INFO - Java: Sun Microsystems Inc. 17.1-b03
22:16:21.500 INFO - OS: Windows XP 5.1 x86
22:16:21.515 INFO - v2.21.0, with Core v2.21.0. Built from revision 16552
22:16:21.859 INFO - RemoteWebDriver instances should connect to: http://127.0.0.
1:4444/wd/hub
22:16:21.875 INFO - Version Jetty/5.1.x
22:16:21.875 INFO - Started HttpContext[/selenium-server/driver,/selenium-server
/driver]
22:16:21.875 INFO - Started HttpContext[/selenium-server,/selenium-server]
22:16:21.875 INFO - Started HttpContext[/,/]
22:16:22.062 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@5d173
22:16:22.062 INFO - Started HttpContext[/wd,/wd]
22:16:22.093 INFO - Started SocketListener on 0.0.0.0:4444
22:16:22.093 INFO - Started org.openqa.jetty.jetty.Server@32fb4f
[java] view plain
信息: Launching a standalone server
22:16:21.484 INFO - Java: Sun Microsystems Inc. 17.1-b03
22:16:21.500 INFO - OS: Windows XP 5.1 x86
22:16:21.515 INFO - v2.21.0, with Core v2.21.0. Built from revision 16552
22:16:21.859 INFO - RemoteWebDriver instances should connect to: http://127.0.0.
1:4444/wd/hub
22:16:21.875 INFO - Version Jetty/5.1.x
22:16:21.875 INFO - Started HttpContext[/selenium-server/driver,/selenium-server
/driver]
22:16:21.875 INFO - Started HttpContext[/selenium-server,/selenium-server]
22:16:21.875 INFO - Started HttpContext[/,/]
22:16:22.062 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@5d173
22:16:22.062 INFO - Started HttpContext[/wd,/wd]
22:16:22.093 INFO - Started SocketListener on 0.0.0.0:4444
22:16:22.093 INFO - Started org.openqa.jetty.jetty.Server@32fb4f
2.4 代码测试
[java] view plainprint?
import com.thoughtworks.selenium.DefaultSelenium;
public class SeleniumDemo01
{
public static void main(String[] args)
{
String host = "localhost";
int port = 4444;
String url = "http://www..com/";
String browserType = "*firefox";
String keyWordsLocator = "document.getElementById('kw')";
String search = "document.getElementById('su')";
DefaultSelenium selenium = new DefaultSelenium(host,port,browserType,url);
selenium.start();
selenium.open(url);
selenium.type(keyWordsLocator,"java selenium");
selenium.click(search);
selenium.waitForPageToLoad("50000");
selenium.stop();
}
}
运行结果:
1.firefox浏览器期待
2.打开网络主页
3.在搜索框中键入了"java selenium"
4.点击"网络一下"按钮
5.等等页面加载50s
6.关闭浏览器
❿ selenium webdriver 执行测试常见问题
selenium中如何保证操作元素的成功率?
如何提高selenium脚本的执行速度?
用例在运行过程中经常会出现不稳定的情况,也就是说这次可以通过,下次就没办法通过了,如何去提升用例的稳定性?
你的自动化用例的执行策略是什么?