QTP常见问题解决方法(一)

时间:2023-12-31 21:21:32

1、对脚本的运行速度进行设置

TOOLS->OPTIONS->RUN->RUN MODE 设置就可以了;一般可以设置为500或者1000值,也就是毫秒;

QTP 12.0版本:

TOOLS->OPTIONS->GUI testing->Test Runs->Run mode

使用QTP录制XQP/OA时的更多按钮不能被录制到的解决
方法一:使用Analog录制模式录制,点击了更多中的按钮是无法刷新页面的;
方法二:tools->virtual objects->new virtual objects->选取控件,这个方法还是无效;
方法三:在QTP的tools->web event recording configuration->custom settings->webelement->event->add->onmouseover & click & onmousedown 等几个,还是无法录制XQP和OA中的更多按钮;
方法四:在QTP的option->web->advanced->record setting->Record Navigate for all navigation operations使用了还是无法录制;
解决方法五:在QTP的option->web->advanced->record setting->User standard Winsows mouse events,结果可以录制,回放了,但是在录制过程中要注意登陆的时候不能输完密码后马上按回车,这样回放时会停留在登陆那里,应该使用鼠标来点击登陆;而且在录制完关掉IE时会报内存错误;

在KEYWORD VIEW模式下快速操作树
在VIEW中使用EXPAND ALL/COLLAPSE ALL可以对树形ACTION进行展开和收缩;

QTP录制过程加入screen 
点击Tools-Options-Run-Save movice to results-Always就可以把screen放到报告中,这样做会造成运行时很慢,CPU占用率100%,而且报告文件很大,在Res中可以看到屏幕的操作过程,相当于屏幕扑捉专家工具来录制,不知道有没办法解决CPU占用过大的问题?可否选择录制文件的格式类型?可否选择录制的帧数?解决CPU的方法大概可以为:录制时并不是马上写到文件中,而是写到内存中,跑完以后在写到文件中;可以多开一个线程或进程来分开两个的操作;(猜想而已。。。)

如何干净删除Data Table数据 
解决方法一:我按Del就删除了数据,但是RUN的时候却还是会继续去读取那些删除的数据,后来发现Data Table的表格有点差异,因为在删除的行上的边框还是深色的,这就说明只是删掉了数据,但是却没有把这些行也从中删除:
解决方法二:选择已经删除的行,点击右键->EDIT->CLEAR->ALL/FORMATS,就可以完全清除了,但是当修改行高时会重现边框线;
解决方法三:选择已经删除的行,点击右键->EDIT->CLEAR->DELETE,这样就可以了,也不会出现方法二的边框线了;

IE记住密码问题解决
取消IE中的自动完成功能,不要让浏览器帮你自动输入帐号与密码,以确保在录制的过程中,所有的操作都会被录制下来,IE->工具->IE设置->内容->自动完成->表单上的用户名密码;

报告中一般只会在出错的时候才会在Details加入图片的解决方法 
报告中一般只会在出错的时候才会在Details加入图片,PASS的就没有了,一开始以为在报告中有选项可以设置,但是找了半天没找到,LOUIS也有遇到这个问题;
解决方法:后来想了一下,根据LR的经验,QTP在RUN就生成了报告,那么报告应该是RUN中设置的,所以最后在TOOLS->OPTIONS->RUN->SAVE STILL IMAGE CAPTURES TO RESULTS 选择 ALWAYS就可以解决问题了;

Action之间的嵌套
口述:
1:Action之间的嵌套是为了解决循环操作的问题,也就是使用参数化更大范围的测试系统,因为在录制脚本的时候是默认把所有的操作都放到一个Action里面的;
2:比较有用的脚本是这样的,比如Action1里面嵌套一个Action1_1,再有一个Action2与Action1是平级的,那么在Action1就可以解决多个帐号登陆,Action1_1就解决某个属性值的多个值测试,Action2就可以录制为退出系统;
3:注意对不同的Action使用不同的Run模式,就是对着Action点击右键设置就可以了;
4:这还是一个比较简单的脚本,因为业务逻辑是比这个要复杂的多的;

一个比较完整的QTP脚本例子
这是一个使用QTP录制BID的例子,其中包括:
1:Checkpoint(检测点);
2:Parameter(参数化);
3:Output(输出参数);
4:Action切割;
5:Action嵌套;
6:RUN时间控制;
7:VBScript使用;
8:DataTable处理(如何干净删除DataTable数据);