2011年12月6日

QTP之WinMenu对象的测试

      WinMenu对象是指菜单控件,常用的测试操作是Select方法,用来模拟用户选择某个菜单项。可以使用BuildMenuPath方法构建菜单路径
如:MenuPath = object.WinMenu("Menu").BulidMenuPath("<item1>;<item12>")
      object.WinMenu("Menu").Select MenuPath
也可以使用Index来指定菜单项:
      MenuPath =object.WinMenu("Menu").BulidMenuPath(1,2)
      object.WinMenu("Menu").Select MenuPath

      以下脚本通过BuildMenuPath(1,1)构建计数器程序中的【编辑】菜单项下的【复制】,通过BuildMenuPath(1,2)构建计数器程序中的【编辑】菜单项下的【粘贴】。

SystemUtil.CloseProcessByName "calc.exe"
Systemutil.Run "calc.exe", "","","","1"

rem 创建描述
Set WinDescription = Description.Create
WinDescription("regexpwndtitle").value ="计算器"

Set MenuDescription = Description.Create
MenuDescription("menuobjtype").value ="2"

Call calc("1")
Call calc("2")
rem 使用BuildMenuPath方法构建菜单路径
MenuPath=Window(WinDescription).WinMenu(MenuDescription).BuildMenuPath(1,1)
Window(WinDescription).WinMenu(MenuDescription).Select MenuPath
Call calc("\+")
MenuPath2=Window(WinDescription).WinMenu(MenuDescription).BuildMenuPath(1,2)
Window(WinDescription).WinMenu(MenuDescription).Select MenuPath2
Call calc("\=")

rem 定义输入函数
function calc(input)
Set WinDescription = Description.Create
WinDescription("regexpwndtitle").value ="计算器"
Set inputDescription = Description.Create
inputDescription("text").value =input
Window(WinDescription).WinButton(inputDescription).Click
End function

      以上脚本可以适应计算器程序中的各种计算,注意:calc() 函数的入参,如执行【+】操作,需要进行正则表达式转换。

posted @ 2011-12-06 18:08 dfine.sqa 阅读(935) 评论(1) 编辑

2011年7月6日

loadrunner之用户自定义数据采集

摘要: Loadrunner中lr_user_data_point、lr_user_data_point_instance两个函数可以用来记录一条自定义的Vuser运行数据,并将其输出到测试结果中,最后可以通过分析工具Analysis来分析数据采集情况。两者之间的区别是lr_user_data_point_instance函数可以用来记录指定事物实例的自定义数据。函数语法:int lr_user_data_point (const char *sample_name, double value);long lr_user_data_point_instance (const char *sample_阅读全文

posted @ 2011-07-06 20:04 dfine.sqa 阅读(1199) 评论(0) 编辑

2011年7月5日

loadrunner字符串处理函数

摘要: 在Loadrunner中提供了C对字符串出了的相关功能函数,如下:lr_save_datetime 把当前日期和时间保存到一个参数中lr_save_int 把一个整数保存为参数lr_save_searched_string 保存一个字符数组相对于字符串出现的部分。lr_save_string 把一个字符串保存到参数中lr_save_var 把字符串的一部分内容保存为参数lr_eval_string 返回参数的实际内容或返回一个包含参数的字符串的实际内容下面我们将对这些函数作一一说明,并举例实践。void lr_save_datetime(const char *format, int off.阅读全文

posted @ 2011-07-05 21:42 dfine.sqa 阅读(1053) 评论(0) 编辑

2011年6月29日

Loadrunner 如何访问数据库

摘要: 在Loadrunner中也提供了C对数据库操作的相关功能函数,以下这些数据库功能函数只能用于Web Services协议。lr_db_connect 连接数据库 lr_db_disconnect 断开数据库的连接lr_db_executeSQLStatement 执行SQL语句 lr_db_dataset_action 对数据库执行操作lr_db_getValue 从数据集中检索值 各函数语法如下:lr_db_connect("StepName", "ConnectionString=<connection_string>", "C阅读全文

posted @ 2011-06-29 14:12 dfine.sqa 阅读(1157) 评论(12) 编辑

2011年6月27日

loadrunner 字符集与检查点的探讨

摘要: 很多人在loadrunner测试脚本中加入中文检查点的时候会出现检查失败的情况,究竟是为什么呢?其实是被测试系统与loadrunner字符集之间的转换出现了问题。下面我们来一一解释。 我们知道loadrunner在录制选项中有一个字符集的设置:Recording Options>>Advanced>>Support charset,在这里可以设置loadrunner支持的字符集。那么被测试系统的字符集与loadrunner字符集会有什么样的关系呢?下面我们以百度、Google为例子加以说明。 首先分别查看百度、Google网站的字符集是什么?打开相应的网站,通过右键查看阅读全文

posted @ 2011-06-27 01:16 dfine.sqa 阅读(1164) 评论(2) 编辑

2011年5月4日

VBS实现工作任务自动QQ提醒(第二版)

摘要: 前段时间在http://www.cnblogs.com/Automation_software/archive/2011/04/13/2010857.html发表了VBS实现工作任务自动QQ提醒,之后对相关功能做了相关的改动,最终代码如下:Function sendmsg(item_code1,item_code2,item_code3,item_code4,qq_id)dim Data_SourceData_Source="BRT170"msg = "有相关工作任务,请及时处理!工单编号为:" rem 发送消息内容''''阅读全文

posted @ 2011-05-04 20:28 dfine.sqa 阅读(295) 评论(0) 编辑

2011年4月30日

QTP对WebTable对象的测试

摘要: WebTable对象用于测试Web页面的表格对象。 对表格对象的测试主要是获取其中的数据,例如表格的行数、列数、单元格的内容等。WebTable对象常用的方法有:ColumnCount、RowCount、GetCellData、ChildItem等。以下为四个方法的语法。ColumnCount 方法:描述返回表中的列数。 语法object.ColumnCount (Row)参数描述object类型 WebTable 的测试对象。Row必填. Long 值。 行号。表中的第一行编号为 1。 返回类型Long 值。RowCount 方法:描述返回表中的行数。 语法object.RowCount .阅读全文

posted @ 2011-04-30 17:27 dfine.sqa 阅读(865) 评论(2) 编辑

2011年4月13日

VBS实现工作任务自动QQ提醒

摘要: 在现实工作中,大部分软件项目都流程化、版本化管理。每个人的工作任务都需要及时处理,才能够使工作高效的进行。为此就想到用VBS来实现工作任务自动QQ提醒的功能。其工作原理很简单:利用ADO实现数据库连接,来查询相关工作任务在不同环节的状态,通过建立QQ临时会话通知相关人员进行处理。这样就可以避免人工的去查询工作任务,使工作更加高效化。 以下为该程序的源代码,将以下代码保存为如:Automatic_notification.vbs的vbs脚本文件。'''''''''''''''&阅读全文

posted @ 2011-04-13 20:51 dfine.sqa 阅读(473) 评论(2) 编辑

2011年4月4日

oracle快速循环插入数据

摘要: 最近在做测试时,遇到有翻页功能每页记录数为500的情况,并且记录是有很多张表关联起来的。如果一条一条的插记录,那显然是不现实的。那么我们可以采取什么比较好的方法来进行测试呢?答案肯定是有的。 下面就介绍两种比较常用的方法: 一:最简单有效的方法。修改程序中的分页记录数,如将分页记录数改小,那样就可以很容易的插入数据进行测试,测试压力也会骤降。 例如:可以将以下代码中的ac_page_record_cnt改为2,那样造数据测试的时间就会很少了。PROCEDURE p_query_typelist( ar_cur OUT NOCOPY ref_data, ac_page_record_cnt O.阅读全文

posted @ 2011-04-04 14:55 dfine.sqa 阅读(999) 评论(0) 编辑

oracle使用游标进行循环数据插入

摘要: 建表语句:beginexecute immediate ' drop table Customer';exception when others thennull;end;beginexecute immediate ' drop table OrderHistory';exception when others thennull;end;--CreateCustomerTableCREATE TABLE Customers( Customer_Id NUMBER(16) NOT NULL, Name VARCHAR(25), CONSTRAINT cus_id阅读全文

posted @ 2011-04-04 12:05 dfine.sqa 阅读(570) 评论(0) 编辑

2011年3月28日

索引信息的验证

摘要: 1、通过工具来验证索引信息,如oracle数据库可以用PL/SQL。2、通过数据字典user_indexes 、user_ind_columns 的相关信息来验证索引。SELECT ic.index_name, ic.column_name, ic.column_position col_pos, ix.uniqueness FROM user_indexes ix, user_ind_columns ic WHERE ic.index_name = ix.index_name AND ic.table_name = 'G_CHKUNIT' AND ic.index_name=阅读全文

posted @ 2011-03-28 11:21 dfine.sqa 阅读(170) 评论(0) 编辑

2011年3月11日

oracle进行表数据恢复

摘要: 1、建表-- Create tablecreate table DARCY(ID NUMBER,INFO NVARCHAR2(32))tablespace DATA_SGPMpctfree 10initrans 1maxtrans 255storage( initial 64K minextents 1 maxextents unlimited);2、插入数据insert into "SGPM"."DARCY"("ID","INFO") values ('1','aaa');inse阅读全文

posted @ 2011-03-11 13:56 dfine.sqa 阅读(749) 评论(0) 编辑

2011年3月2日

Oracle行列转换的几种实现方法

摘要: 假如有如下表,其中各个i值对应的行数是不定的SQL> select * from t;I A D———- ———- ——————-1 b 2008-03-27 10:55:421 a 2008-03-27 10:55:461 d 2008-03-27 10:55:302 z 2008-03-27 10:55:552 t 2008-03-27 10:55:59要获得如下结果,注意字符串需要按照D列的时间排序:1 d,b,a2 z,t这是一个比较典型的行列转换,有好几种实现方法1.自定义函数实现create or replace function my_concat(n number)ret阅读全文

posted @ 2011-03-02 13:34 dfine.sqa 阅读(281) 评论(0) 编辑

Oracle实现分组统计记录

摘要: 今天刚上班不久,QQ滴滴的响个不停,看了下信息是一个网友要我帮忙下一个SQL语句,大体意思是:统计heart_active字段为不同情况的记录数,然后按时间来分组。 我想了下,心里想这好办,于是马上建了一个表,语句如下:CREATE TABLE rfid_fixed_heart (input_date date,heart_active VARCHAR2(2)); 接下来往rfid_fixed_heart表中插入了数据,heart_active字段为0和1, input_date中插入YYYY-MM-DD格式的数据。后来就写了下面两个SQL给她,语句一和语句二有点区别,语句一快一统计出hea.阅读全文

posted @ 2011-03-02 11:34 dfine.sqa 阅读(489) 评论(0) 编辑

2011年2月18日

从十大经典故事中学管理

摘要: 员工管理和激励是一个复杂的事情,有时让管理者摸不着头脑,甚至感到头疼。销售管理往往并非现场管理,遥控管理无形之中增加了管理的难度。轻松一下,看看以下的十个经典故事,也许你会从中受到启发。 一、分工 一位年轻的炮兵军官上任后,到下属部队视察操练情况,发现有几个部队操练时有一个共同的情况:在操练中,总有一个士兵自始至终站在大炮的炮筒下,纹丝不动。经过询问,得到的答案是:操练条例就是这样规定的。原来,条例因循的是用马拉大炮时代的规则,当时站在炮筒下的士兵的任务是拉住马的缰绳,防止大炮发射后因后座力产生的距离偏差,减少再次瞄准的时间。现在大炮不再需要这一角色了。但条例没有及时调整,出现了不拉马的士兵阅读全文

posted @ 2011-02-18 13:25 dfine.sqa 阅读(165) 评论(0) 编辑

2011年2月15日

[转载] 成为QTP高手必经的四个过程

摘要: QTP要学精,个人认为必须要经历从无到有,从有到懂,从懂到熟,从熟到精这四个过程。从无到有 - 初级篇 这个过程主要是熟悉QTP的界面设置,以及一些基本的用法,包括最基础的录制回放,低级录制,参数化,OUTPUT输出,验证点,等等,也可以在51testing论坛里找到些新手的资料,推荐大家可以去这里:http://bbs.51testing.com/thread-78399-1-2.html 下载QTP_Tutorial.chm ,这一步是最最初级的东西,一定要全部看完并且能够通过实际的例子去尝试独立完成它。总体来说这个阶段还是属于一个入门,比较容易能够接受,也是大多数测试人员能够达到的层次阅读全文

posted @ 2011-02-15 17:33 dfine.sqa 阅读(334) 评论(0) 编辑

2011年1月27日

Oracle大数据量数据生成器Data Generator的使用

摘要: 首先测试环境建立:dept表CREATE TABLE dept ( deptno NUMBER(6), dname VARCHAR2(20), loc VARCHAR2(20)); 以下实验就是像dept表中插入大量的数据。数据生成器允许创建演示和测试数据。对于测试应用程序和查看它们怎样执行大量的数据,这很有帮助的。可以在PL/SQL Developer的工具菜单的下面找到数据生成器:Data Generator。 基本上,定义由一个或多个表、要生成的记录数量和字段数据定义构成。左上部的按钮允许打开和保存定义。在上面,可以看到提供的 dept演示,这个演示是为 dept表创建数据。在这一页中,阅读全文

posted @ 2011-01-27 17:05 dfine.sqa 阅读(1035) 评论(3) 编辑

2011年1月26日

junit私有方法测试

摘要: 很多人说类的私有方法不用测试,理由是类私有方法只允许被本类访问,而其他类无权调用。事实上并非如此,来看一个范例程序,Commodity_Parent是一个商品父类,定义了两个商品类基础属性:commodity_name,commodity_price,分别是商品的名称和价格。二组公共和两组受保护的实例方法分别是getcommodity_name(),getcommodity_price,setcommodity_name(),setcommodity_price(),对应的功能是取商品名称、价格,设置商品名称、价格。具体代码如下:package com.fastpoint.Private;p.阅读全文

posted @ 2011-01-26 09:49 dfine.sqa 阅读(728) 评论(0) 编辑

2011年1月25日

Junit实现抽象类测试(二)

摘要: 如果抽象类中包含了具体实现的方法,那么使用抽象类测试(一)中的抽象类测试方式就很勉强了,因为抽象类的具体方法有可能被继承该抽象类的具体子类所覆盖,导致测试偏差现象发生。对于这样的测试场景,可以引入静态内部类进行抽象类变相实例化测试,这里引入Commodity抽象类实现这种设计,该类属性,抽象方法和实例方法的具体描述如下:commodity_name属于Commodity类实例私有属性,用于记录Commodity类实例的name值commodity_price属于Commodity类实例私有属性,用于记录Commodity类实例的price值getCommodity()工厂方法,返回一个Com.阅读全文

posted @ 2011-01-25 17:26 dfine.sqa 阅读(303) 评论(0) 编辑

Junit实现抽象类测试(一)

摘要: OOP的一个很好的机制是使用抽象类,抽象类是不能被实例化的,只能提供给派生类一个接口。设计人员通常使用抽象类来强迫实现人员从基类派生,这样可以确保新的类包含一些期待的功能。 在Junit对抽象类的测试中再次引入工厂设计模式,其测试思想是:抽象类不能被实例化,所以使用具体类测试抽象类是不可以的。因此,构造抽象类的测试类必须也是抽象的。该类需要强制声明两种类型的抽象方法。第一类抽象方法即工厂方法,返回所有被测试抽象类的具体子类实例,第二类定义抽象方法返回所有被测试抽象类的具体子类行为期望值。如下面代码,Commodity类是一个商品抽象类,该类的抽象方法描述具体如下:getCommodityNa.阅读全文

posted @ 2011-01-25 11:07 dfine.sqa 阅读(364) 评论(0) 编辑

仅列出标题  下一页

导航

统计

公告