Be the princess of myself

发布新日志

  • 笨方法实现qtp的自动循环

    2007-09-03 11:09:04

       从理论上来将,qtp是做的一个非常不错的工具,使用起来也非常方便,实现自动循环是一个非常基本的操作,但是,我在使用其进行循环的时候,遇到了以下问题:

    循环时,经常是第一遍执行正常,第二遍的时候就出现找不到对象的错误,针对这个问题有以下方法可以避开。

    对于b/s结构的应用程序:不用for循环语句,通过添加参数进行循环,好像就不会出现这个问题;

    对于c/s结构的应用程序:

    1、不是操作系统自带的应用程序

    以qtp的自带的示例程序为例:

    Dim oShell
    Set ōShell = CreateObject ("Wscrīpt.shell")
    oShell.run "cmd /K CD C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app(程序路径) & flight4a.exe(程序可执行文件)"
    Set ōShell = Nothing

    问题:上面的程序可以打开一个非操作系统自带的应用程序,但是打开程序之后,出现一个命令行窗口,这样一来,每循环一次,会出现一个这样的窗口,我们如何关闭这个窗口呢?

    解决方案:

    步骤1:修改录制设置,设置为“在任何打开的基于windows的应用程序上录制并运行测试”;
    步骤2:急于已经打开的窗口进行录制,且录制的最后应该关闭应用程序,然后停止录制;
    步骤3:然后执行Window("C:\WINNT\system32\cmd.exe").close,将命令行窗口关闭
    这样,再进行循环的时候就不会有问题了。
    这里出现了一个疑问:我们为什么不在打开程序的一开始就将命令行窗口关闭呢?
    原因:因为我们执行打开这个应用程序的语句之后,处于windows界面最前方的窗口是你的应用程序窗口,如果此时就执行关闭命令行窗口的语句,qtp会报找不到的窗口的错误。

    2、打开一个操作系统自带的应用程序,以计算器为例:
    set WshShell =CreateObject("Wscrīpt.Shell")
    WshShell.AppActivate "计算器"——指定要激活哪个应用程序。它可以是包含应用程序的标题(和出现在标题栏中的一样)或过程 ID 的字符串(可以没有,它只是激活应用程序,保持应用程序在最前面)
    WshShell.Run "calc"——打开计算器
    注意:这种方法也使用于b/s结构的程序,只要把方法run的参数设置成为“IEXPLORE”就可以了。

      按照以上的操作,在使用for循环就不会有问题了!

     

     

  • 享受寂寞

    2007-08-31 17:40:28

        曾几何时我竟然变得有些聒噪——好像很喜欢说话,但是不太喜欢和不太熟悉的人说话。就因为这个,我最近好像有些烦恼,因为我进入到了一个新的工作环境,新的同事都是男生,不怎么主动和我说话,且不说和工作无关的话题,即使是有关工作和技术上的问题,也很少探讨,所以我最近不喜欢待在公司里,特别盼望周末(原来的我可是很喜欢待在公司的,工作、学习我都不讨厌,因为充实)。昨天,和原来的同事聚会,我特别激动,以至于晚上很久都不能入睡。回到家里,高亢的喉咙慢慢的冷静下来时,感觉有些莫名的伤感,似乎想哭,但终究没有哭出来,因为我觉得这样做没有理由。慢慢的,我告诉自己,应该学会享受寂寞……

      作为一个测试人员,也许“聒噪”是长处,但是该说则说,适当的解决了工作的问题、技术的问题……该静则静,给大脑一个寂静的空间,让它安静的去思考,让静静的思考成为生活的一部分,生活中也必须有这一部分!

      在自我“安静”的环境里,可以享受思考的快乐、可以享受获得新知的喜悦,岂不快哉!

  • 显示桌面文件

    2007-08-31 09:59:41

    显示桌面文件:

    显示桌面.scf

    [Shell]
    Command=2
    IconFile=explorer.exe,3
    [Taskbar]
    Command=ToggleDesktop

    该文件路径:

    C:\Documents and Settings\用户(比如administrator)\Application Data\Microsoft\Internet Explorer\Quick Launch

  • win2000不能显示隐藏文件

    2007-08-31 09:58:09

    症状:即使在查看菜单中修改了显示隐藏文件的设置,保存以后,系统自动返回到不显示的设置

    解决方案:将注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL\CheckedValue的值改为1

  • 查询语句中包含日期

    2007-08-30 12:33:09

    select * from table t where to_char(t.列名,'yyyy-mm-dd') = '1900-01-01'

    将日期转换为字符型:

    select to_char(t.列名) from table t

  • java学习笔记(1)

    2007-08-28 16:42:49

    1、 Java
    1) 使用符号“{”、“}”标记程序段的开始和结束;
      2) 使用“;”标记语句结束;
    2、 错误:Bad command or file name   原因:这就是没有设置Java的路径
    3、 main()对于Java应用程序来说,也是一个十分重要的方法,因为Java解释器会从main()开始解释。不过这里的的main()不叫函数,而叫方法
    public static void main(String args[])
    4、 输入javac HellowWorld.java(class)
    输出:Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/java
    原因:找不到HelloWorld这个类。也就是说,使用Java解释器进行解释时,后面的参数应该是类名。
    正确输入应该是:javac HellowWorld
    5、 使用Java编程,Java源程序文件的名字应与类名一致,但包含小应用程序的HTML文件则无需与其一致。
    6、 由于Java小应用程序是不能直接使用命令行来运行的,它们是嵌入到网页中的,要使用浏览器才能够运行。而浏览器是无法直接执行Java小应用程序的。这时我们就必须通过HTML文件来告诉浏览器执行Java小应用程序。
    7、 在HTML文件中嵌入Java小应用程序,应使用<APPLET></APPLET>标志,这个标志包含几个参数:
    CODE=“”:用来指出要嵌入的Java小应用程序名称;
    WIDTH=x:用来指定Java小应用程序的宽度;
    HEIGHT=x:用来指定Java小应用程序的高度。
    8、 可以通过两种方法来运行Java小应用程序:一种方法是使用支持Java的浏览器(如微软的IE、还用Netscape的Navigator),另一种方法是使用Java的小应用程序浏览器AppletViewer
    第一种方法:直接浏览html文件即可;
    第二种方法:AppletViewer  HelloWorldApplet.html
    9、 其实这里指出的Applet类是所有Java小应用程序的父类;
    10、 Java小应用程序不需要main方法,是因为:小应用程序不是自己启动的,而是被已经运行的程序(浏览器)加载的。浏览器预定义了每个小应用程序要做的东西。它是通过调用小应用程序具有的方法来实现加载的。这个方法就是paint。
    说得更通俗、明白一些,就是说Java应用程序是自己启动的,从main()方法开始,而小应用程序则是由浏览器调用的,浏览器在不同的时候就调用小应用程序中的方法,比如浏览器要显示小应用程序就调用小应用程序的paint方法。
    11、import语句在功能上与C/C++语言中的include语句相同,但请大家注意它们之间有两大不同:
      1) C/C++语言中用include是包含外部文件,所以include后面应是文件名,而import是输入外部类,所以import后面应是类名;
    2) 与include不同,import语句后面应该跟上“;”,否则会出错。
    12、一个java程序分为5部分:
     1)"import"部分;
     2)"class define"部分(或者是子类)
     3)"field"部分;用于定义类属于类的数据(变量)。这些数据是用来描述对象的状态,方法就是对这个数据进行操作的
    4)"comment"部分;两种方式:
    a)注释的前面加上“//”;
    b)在注释的前面加上“/*”,结束加上“*/”。
    5)"methods"部分
    13、计算机中所有的数据都是存储在内存中的
    14变量名命名规则:
    1) 变量名可以由字母字符、数字、标点组成;
      2) 变量名必须以字母字符、“$”(美元符号)、“_”(下划线)开头;
    3) 变量名不能与Java语言的保留字重名;
    注意:变量名区分大小写;
    在Java语言中,只要在同一个代码段没有同名的变量,就可以在程序中的任何一个地方定义变量。一个代码块就是两个相对的“{”、“}”之间的部分
    15、方法包含两个部分:1)声明:用来说明方法的相关信息;
           2)体:方法的实际内容
    16、方法声明的格式是:
      访问说明符 [修饰符] 返回值类型 方法名 ([参数列表])
    注:其中用“[]”括起来的部分是可选的。
    17、方法的命名规则与类一致
    18、方法的类型
      根据“方法”完成的工作性质,通常可以分为三类:
      1)“转换”型:调用这种方法,将修改内部变量的值;
      2)“访问”型:调用这种方法,将返回内部变量的值;
    3)“效果”型:调用这种方法,通常不返回任何值,而是执行了某个动作,例如向屏幕打印一些信息。
    19、自加与自减运算:
    程序
    public class test01
    {
    public static void main(String args[])
    {
    int x=5;
    int y=x++;
    int x1=5;
    int y1=++x1;
    System.out.println("x="+x);
    System.out.println("y="+y);
    System.out.println("x1="+x1);
    System.out.println("y1="+y1);
    }
    }
    的运行结果是:
    x=6
    y=5
    x1=6
    y1=6
    20、Java语言核心API
    1)java.lang
      它是Java语言中最核心的包,它提供了最基本的数据类型,编程框架。
      2)java.io
      io,就是input/output的缩写,它是Java语言的标准输入/输出库。
      3)java.util
      它是由几个基本的实用类组成的,如日期类。
      4)java.net
     这是使Java具备网络处理功能的类,使用这个包就可轻松地创建、连接套接字(socket)、可以编写出自己的telnet、FTP等程序。
      5)java.awt.*
      代表java.awt以及java.awt.image等其它包。这些包就是通常说的Java Abstract Window Toolkit(抽象窗口工具包,简称AWT)。它是由一些能够为用户的小应用程序创建丰富、有吸引力的、实用的界面资源组成的。它是使用Java开发图形界面程序时必不可少的一个包。使用它就可创建出美丽的图形世界。
    6)java.applet
      大家应该还能够记得applet是什么吧?对,小应用程序。这个Java API中最小的包是编写Java小应用程序的基础。大家应该注意到,在我们前面的所有关于小应用程序的例子中,都包含了这样一句:
      过去是这样,今后也是这样。要写Applet程序就要使用它!
      7)java.sql
    在这个包中,包含了JDBC(Java DataBase Connect,Java数据库连接),使用它可以开发出数据库应用程序。
    21、java的数据类型
     1)基本类型:boolean、char、byte(8位)、int(32位)、short(16位)、long(32位)、float(32位)、double(64位)八种
      Byte 8位带符号整数 -128到127之间的任意整数
      Short 16位无符号整数 -32768~32767之间的任意整数
      Int 32位带符号整数 -231到231-1之间的任意整数
      Long 64位带符号整数 -263到263-1之间的任意整数
      Float 32位单精度浮点数 根据IEEE754-1985标准
      Double 64位双精度浮点数 根据IEEE754-1985标准
     2)扩张类型:
    22、浮点数:
      浮点数这个名称是相对于定点数而言的,这个点就是小数点。浮点数就是指小数点可以根据需要改位置。
    23、定义字符串的两种方法:
    1) 使用变量定义的方式,例如:
    String programOut=”Hello World!!”;
      2) 使用new操作符,例如:
    String programOut=new String(”Hello World!!”);
    23、字符串合并:
    fullName=firstName+” ”+lastName
    24、求字符串长度:方法:public int length()
    25、在字符串中查找:方法:public int indexOf(String findMe)
     26、求子串:
     1)public String substring(int startIndex)——给出开始位置,表示从指定的开始位置开始,直到字符串结束;
     2)public String substring(int startIndex,endIndex)——给出开始位置和结束位置,表示从指定的开始位置开始,直到结束位置。
    27、定义数据:
    1)零数组:表明数组存在,但没有值。
    int firstArray[ ];
      2)预留空间:为数组预留一些存储空间,但并未马上赋值。
    int secondArray[ ]=new int[5];
      在这里,我们定义了一个数组secondArray,并为其预留了够存放5个int型数的空间。
      3) 一次性完成定义与赋值:
    int intArray[ ]={30,20,10,-10};
      注意:
      在Java语言中,数组一经定义之后就不能够改变其大小,这与其它程序设计语言中不同,在编程时一定要注意这点。
    28、System.out.println(stringArray)输入结果:[Ljava.lang.String;@198dfaf
    其中stringArray是数组的名字,这样输出会输出这个数组在内存中的地址
    29、将Birthday称为类,而将birthday1和 birthday2称为对象。请大家一定要明明白白地知道其中原委。类是一类事物,而对象则是一个个体(Birthday birthday1=new Birthday();)
    30方法调用: 前面是对象名,后面是方法名,中间用“.”连接
    31、创造新类:
    1) 构思所需类的成员变量和成员方法;
      2) 用以下格式来编写类:
    类修饰符 class 类名
    {
    成员变量定义;
    ……
    成员方法定义;
    ……
    }
      3) 使用javac编译这个类;
    4) 然后我们就可以在其它类中使用这个类。
    注意:
      当你编译使用自定义类(如Birthday)的程序(如useBirthday.java)时,这个类(Birthday.class)必须与程序(useBirthday.java)位于相同的目录中,或者在系统变量CLASSPATH定义的目录中。否则编译时将找不到这个类,以致程序无法编译成功。
      一些提示:
      当你需要同时编译几个Java文件时,你可以使用一条命令来完成。例如:
    javac Birthday.java useBirthday.java
    32、与类同名的成员方法称为构造器。每当使用new操作符创建属于这个类的对象时,就会执行构造器方法。
    一个类可以有多个构造器,在使用new操作符时,执行哪个构造器则取决于它所带的参数
    33、static:静态的意思不是指它的值是不变的。而是它的存储位置是不变的,所以程序中的对象调用的都是一个变量,所以值也一样。
    同样的,static也可以用来修饰方法,即静态方法,静态方法只能访问静态数据,而不能访问非静态的变量和方法,否则将引起编译器出错
  • 重新安装loadrunner

    2007-08-28 16:38:05

     重新安装loadrunner步骤:

    1、备份文件lm70.dll和mlr5lprg.dll(C:\Program Files\Mercury\LoadRunner\bin和C:\Program Files\Mercury\LoadRunner\bin\tulip\bin下面)

    2、卸载原来的安装程序(我还删了一下注册表中的相关键值,我不确定不删会不会有问题);

    3、安装新的程序,在添序列号的步骤中,填temporary(如果你原来的序列号还能用,就没必要这样了:));

    4、安装完成,正常重启以后,用备份的文件将安装后的文件替换,然后在loadrunner-config中new一个license,将原来的序列号输入进去,一切ok。

    说明:我是将7.8更新为8.1时这样做的,不知道同一个版本是否可以

  • 软件评测师证的价值

    2007-08-28 16:26:10

      关于这个证的价值,众说纷纭,我也没有发现它有什么特别的价值。不过有以下三点理由,大家可以去考:

    1、报考费不多,只要78块钱;

    2、对于多数人来说,平常没事不会去主动学习那么多的知识,参加这个考试也是一个督促自己学习的机会;

    3、考过了,自己会很高兴的,有了这个证也是对自己能力的一个小小的证明嘛:)

     

  • 关于软件评测师考试

    2007-08-28 16:18:29

    今年我能通过软件评测师的考试,我总结了一下,主要是由于以下两点:一、考前进行了一些复习;二、今年的试题测试的内容更多一些,这对于我们做测试的人来说,可以说相对简单一些。 

        对于第二点没什么好说的,对于第一点,我的复习过程是这样的:

    上午的考试:针对考试的内容比较广泛,而且我对考试涉及的除测试之外的内容都不太熟悉,所以《软件评测师考试考点分析与真题详解》这本书还是可以起到一个大纲的作用的,有了它你就比较容易知道从何下手了。这本书通看一下,最好能理解其中的知识点,尤其是认真的学习一下课后题。以上主要是针对其他知识部分的。对于测试部分,上面这本书也有相关知识,还有一本评测师的考试教程,也有相关的知识,此外考试所考到的测试知识是任何一本测试的数据都差不多能够包含的。无论你看的是哪本书,如果时间允许,都要认真的理解其中的内容,搞清楚各种功能测试方法和单元测试方法。

    下午的考试:拿历年的试题看一下,以前的考试来看,下午的出题形式一直都没有变,一道画图题,这个很容易掌握的;一道性能测试题,这个就要看经验了;还有就是测试方法的题目了,这个书上都有的,只要都记住了就可以了,而且可以试着猜一下题,看看那些方法前几年考过了,还有哪些没考过,对于没考过的认真看一下,记一下。

       作为一个测试人员,我写和说的能力都不太强,很是惭愧,所以上面写的也有点乱,有待提高啊!

  • 爱好与职业

    2007-08-23 16:50:03

    我的职业是软件测试,我的爱好是学习外语(可惜直到现在我也只会一门外语——英语);

    我喜欢英语,可是从没想过把它作为一种职业。我今生的职业应该是一直和软件测试相关的。幸运的是英语和测试一点都不矛盾,相反,学好英语,对测试的职业来说,是一件很有帮助的事,因为很多很好的测试资料都是英文的。

    那么,我应该如何安排我的时间,让我的爱好和我的职业相辅相成,达到最佳的配合呢?

    我不能把我所有的业余时间都放到英语上,因为要做好测试,我还有很多东西要学,比如编程知识、各种传输协议、数据库等等,所以我每天只能拿出一点点时间去看英语,不只是测试相关知识的英语,这样,由少积多,效果应该是不错的。

    鉴于以上的计划,我打算明年5月考二级翻译。也许这个打算是不且实际的,但是即使这样一个时间段内不能实现,但是我的最终目标是不会变的,实现它只是时间长短的问题。

  • 软考评测师过了:)

    2007-08-22 12:45:53

    听说软考评测师大概是去年3月的事,听说了就报名了,那时也笨,也没到网上找找相关的资料,就看了一下那本蓝皮的书,结果没过。考完了的时候我跟男友说,明年再考,所以我今年又去考了,不过这次准备的充分了很多,而且还买了一本黄皮的书。7月19号出的成绩,过了,当时非常开心!

    说实在的,今天的题比去年要简单很多,尤其是上午的,测试占的比例增大了很多,也许这是我通过的原因:)

    不过大家不要误解,看是还是非常有用的。

    再过些天就可以去领证了,虽然不知道它的价值有多大,但是还是挺开心的!

     

  • 辞职了

    2007-07-10 17:40:48

    我自己也没想到自己竟然辞职了,就在今天,而且一切手续在几个小时之内就办完了,明天我就要去新的公司上班了。

    似乎挺伤感的,可是也找不到一个好的理由,也许是不愿意离开熟悉的环境,也许是不愿意接受新的环境。

    我从不喜欢写有关心情的博客,可是今天有点忍不住,所以就写了几句语无伦次的话。

    其实今天所发生的一切都是非常正常的事情,我也应该也正常的心态去面对。明天所面对的工作,也没有什么特别的,一切都是在自己的掌控范围内的,所以,我相信我可以做的很好:)

  • 有点吾了

    2007-04-28 09:23:04

        对于白盒测试,了解已经很久了,各种基本的方法,比如逻辑覆盖、路径覆盖、函数覆盖等等,也都看过一些理论方面的知识,可是一直觉得这些是开发人员做的,所以很大的一个前提就是会熟练的写代码。但是昨天再次看过一遍以后,好像突然有点吾了,觉得只有可以看着程序画出流程图,不用写代码很厉害,也可以做的。

        我大概是很迟钝的,这么久才想明白,也学是看书不够认真吧?不过吾了总比不吾好,吾一点也比一点不吾好:)

  • 白盒测试笔记

    2007-03-01 14:38:21

    逻辑覆盖的种类:

    1、语句覆盖

    2、判定覆盖(分支覆盖)

    3、条件覆盖

    4、条件判定组合覆盖

    5、多条件覆盖

    6、修正条件覆盖

     

  • spoolsv.exe占用50%的cpu

    2007-02-12 13:50:22

    进程中的spoolsv.exe占用50%的cpu,这个文件在C:\WINDOWS\system32下,导致机器很慢,只要将C:\WINDOWS\system32\spool\PRINTERS目录下的文件删除就ok了,这个不是病毒。注意,要先结束进程,才能删除的哦:)

  • 番茄版xp下安装loadrunner

    2007-01-20 14:20:55

    在番茄版xp下安装完loadrunner以后,只剩下mi的一个用户了,此时可以进入安全模式,将该用户停用,才能进入到原来的系统

  • loadrunner8.0安装

    2007-01-20 14:18:22

    安装loadrunner8.0的时候,出现如下的错误:

    The link file F:\测试\loadrunner\LoadRunnerV8.0\LoadRunner V8.0\lrunner\lrunner\aes_scrīpt_api.nt\bin\aes_scrīpt_api.dll_mln may be corrupted or has illegal link string.

    这是因为安装目录中存在中文的原因。

     

    oracle的安装过程中也存在这个问题。

     

  • ghost8.3的文件存在什么地方

    2007-01-16 14:08:51

    用ghost8.3备份c盘的时候,备份的时候显示是在c盘的~1文件夹下,但是备份结束后,c盘下确找不到该文件夹。其实,这个ghost文件不在c盘,而是存在存在最后一个分区的磁盘下,可以通过以下方式找到:

    1、运行,输入F:\~1(其中f是最后的一个分区)

    2、进入该文件夹以后,选择工具-文件夹选项-查看,将隐藏受保护的操作系统文件一项前面的选项勾掉,且选择显示所有文件和文件夹,然后就可以看到了。

    注意:看到或者拷贝完了,要将文件夹的设置改回来,免得将系统文件删除了,导致系统崩溃:(

  • ghost出错挽救措施

    2007-01-16 14:00:50

    用ghost恢复的时候不小心选成了disk,结果导致恢复之后只剩一个C盘了,幸亏同事帮忙,上网找了个工具,恢复了e,f盘,但是d盘还是丢失了,至于e,f盘,是这样恢复的。(注意发生了这种情况就不要向磁盘中写东西了)

    1、在其他人的机器上下载一个叫disk genius的软件(也叫diskman)

    2、将该工具考到软盘上,并用这个软盘做一个启动盘

    3、通过这个软盘启动,进入dos

    4、通过命令diskgen打开该工具

    5、选择工具菜单,进入重新分区选项,选择交互方式查询

    6、对于查处的结果,可能有一些零碎的东西,是unknown格式的,不要报错,对于有明确格式的,比如是ntfs或者是fat32的,而且大小也与你的各个磁盘大小类似的,保促之,查完后,按下f8保存

    7、将该机器上的硬盘挂到其他好的机器上,把你的东西拷下来,然后再对你的机器重新分区(fdisk),重装系统,再把东西拷贝回来就ok了。

     

  • 今日英语

    2006-12-25 15:28:27

    饭店:

    I'd like to book a table for two for this weekend,Match 28th.

    我想定一张两人桌,时间是3月28日,本周末。

    Where is the washroom(restroom,elevator)?

    洗手间(休息室、电梯间)在哪?

    Thank you for your advice?

    谢谢你的忠告。

    What is going to be? Chinese food or western food?

    是要中餐还是西餐?

    May I have your name please,Miss?

    小姐,请问您贵姓?

    Here is the bill,please sign it.

    这是您的帐单,请签字。

    Is there any chance of a table by the window?

    能否定一张靠窗户的桌子那?

    Please book it under the name of Miss.Cen.请以岑小姐的名义预定。

    Please be assured that we'll try our best.

    请放心,我们会尽力安排的。

    I appreciate it if it could be arranged.

    如果你们能作出安排,我将不胜感激。

    We'll keep the table for you until 7:20.

    我们将把餐桌为您保留到7:20。

    Thank you for  staying in our hotel.

    感谢您在我们酒店下榻。

    We'd like hold a farewell dinner for some friends.

    我们想为几位朋友举行一个告别宴会。

    Anything special on the menu?

    要什么特别的菜吗?

    As for other dishes,I'll leave the choice to you if you don't mind.

    其余的菜就请您代劳选择吧。

    I beg your pardon?

    对不起,请再说一遍,好吗?

     

     

     

     

     

     

     

632/4<1234>
Open Toolbar