发布新日志

  • QTP设置—双击事件录不上的解决办法

    2013-10-15 15:39:12

    QTP设置—双击事件录不上的解决办法

    QTP的脚本录制过程中,有时候会不可避免的录制需要鼠标双击才能出来的事件,但是QTP的默认设置中鼠标双击事件得不到响应,如果要录制双击鼠标事件需要更改QTP的默认设置,加载进来鼠标双击事件,下面介绍一下设置的具体过程。

    1、在菜单栏中选中‘Tools功能按钮,点tools目录下的web event recording configuration选项

    2、在弹出的web event recording configuration对话框中点击custom setting

    3、弹出的Custom Web Recording Configuration对话框点击菜单栏中的Event功能按钮,开其下的Add目录,点击ondblclik

    4经过这样的设置‘ondbclick就被加载进来了

    这样,再次录制鼠标双击动作时就可以顺利录上了。 

  • 密文密码参数化技巧

    2010-11-30 15:45:08

                         如何处理加密数据

        在自动化测试过程时,登录页面,密码进行参数化时,我们又会碰到一个小问题,密码是密文的,而我们准备的测试数据是明文的,该如何处理呢?

        QTP提供了几种方式去完成此项工作。

        1. 简单的方式:切换到Expert View的Tab页面,将“SetSecure”这个函数改成“Set”,QTP就可以以明文方式处理数据了。

        2. 最快捷的方式:在DataTable中选中需要加密的数据,点击右键,依次选择【Data】--【Encrvnt】项,就可以将明文数据进行加密了。

        3. 调用函数去实现加密:函数Crypt.Encrypt(),例如:

         Org_password= "thisisorgpassword"

         E_password= Crypt.Encrypt(Org_password)

  • QTP自带订票系统B/S访问地址

    2010-11-30 14:23:46

     

    QTP工具自带的订票系统,B/S端访问地址:

             http://newtours.demoaut.com/

  • QTP 破解---注册机

    2010-11-30 13:55:23

    QTP破解

        以前使用QTP9.2 使用此方法成功破解,现在本人使用的HP QuickTest Professional 11 英文版,也成功适用。

    一、准备工作:

    1. 由于注册码文件自动生成到C:\Program Files\Common Files\Mercury Interactive\License Manager目录下,所以如果缺少这个路径文件,请先创建;

    2. 关闭杀毒软件。

    二、运行注册码应用程序

      1. 下载QTP注册机-见附件,应用程序mgn-mqt82.exe,双击运行,来创建注册码,见页面提示:

        -- e!l console v1.01 ---

    Geting MachineID...
    MachineID: 8-45036
    Generating License...
    License Generated Successfuly.
    License Saved: 'C:\Program Files\Common Files\Mercury Interactive\License Manager\lservrc'.
    All Done!

    注:如果提示框没有出现:'C:\Program Files\Common Files\Mercury Interactive\License Manager\lservrc',请先确保Mercury Interactive、License Manager文件夹是否创建,lservrc不用手工创建,当运行注册码运用程序时会自动生成。

      2. 进入‘C:\Program Files\Common Files\Mercury Interactive\License Manager’目录下,打开lservrc文件,Copy文件第一行或者第三行以#结尾的的字符串,此字符串就是注册码;

      3. 打开QTP应用程序,选择License Type: Seat License, 在注册码输入框paste注册码。

      当出现提示信息:License Type installed successfully

      恭喜你!注册成功

  • QTP脚本保存至QC

    2010-09-28 17:12:32

    QTP连接QC

     

      思考:如何将QTP里编写的脚本对应保存到QC中,将脚本与测试用例 有机结合起来,方便执行、维护。

     

         今天连接成功,将解决方案印贴。

     

       1.       QC中加载QTP插件;

    a.       进入QC首页,选择第三项:插件页

    b.    点击进入,点击【其他 Mercury Quality Center 加载项 ,针对你当前使用QTP的版本,下载其对应的插件;如果页面点击无效,点击此连接:
    http://update.external.hp.com/qualitycenter/qc90/mictools/qtp/index.html

    下载完毕,进行安装,在开始-程序菜单里出现:QuickTest Add-in for Quality Center

    2.  打开QTP,点击【TOOLS--[RUN]选项卡,选中Allow other mercury products to run tests and components复选框。

    3.    启动在QTP里登录QC

    输入QC对应的信息

    点击【login,ok!登录成功

    4.    打开qtp菜单【File--save as,点击【Quality Center

    5.  选择保存至QC测试用例所在的目录,

  • 视频学习系列2----QTP的测试规划

    2010-09-25 17:19:59

    QTP的测试规划

     

         今天学习了小布老师的QTP视频, http://www.boobooke.com/v/bbk3302

     总结:

    将测试作为一个系统工程来做,首先必须制定合乎本项目的测试计划,测试需求。

    1.       准备自动化测试环境

    l  手工测试步骤文档化;

    l  确保被测系统稳定、好用;

    l  准备数据,检查数据有效性。

    2.      规划测试计划

    l  确定项目资源,包括:人力资源,时间资源等;

    l  检查被测试系统就绪,人员、文档、技术资料等;

    l  确定测试优先级最高的业务需求功能;

    l  准备数据;

    2种方法:a. 使用生产系统数据,但需考虑数据的安全性

    b. 使用工具制造测试数据

    l  确定业务测试模块的正确结果,缺陷处理流程等;

    l  测试计划满足以上步骤。

    3.      测试需求

    l  将应用程序所要实现的目标文档化;

    l  将产生的不同意见、细节理顺;

    l  规定测试范围

    测试需求特点:

    唯一性、精确、有限制的、可测性、无二义性。

     

     

     

     

     

     

     

  • 视频学习系列一----QTP介绍

    2010-09-25 16:27:10

    QTP介绍

     

         今天学习了小布老师的QTP视频,http://www.boobooke.com/v/bbk3207

     总结:

    QTP只是一种自动化测试工具,也是进行自动化测试的前提,个人在企业进行自动化测试,必须要制定适合本企业项目特点的自动化测试框架。自动化测试框架是更高级的应用,那么,我们先从QTP基础开始吧!

     

    1.      目标

    l  通过QTP10.0学会在windows下进行自动化测试;

    l  学会使用检查点,对测试脚本进行增强;

    l  创建自动化测试脚本

    2.      手工测试vs 自动化测试

    手工测试;

    l  耗时

    l  重复起来很困难

    l  并不是一直很可靠

    l  成本很高

    自动化测试

    l  执行速度很快

    l  重复执行

    l  可靠

    l  编程序

    l  全面

    l  重复使用

    3.       自动化测试时机

    l  每个版本每次build时;

    l  数据驱动,比如说,银行开户或转账交易,我转不同钱,各种情况覆盖到,

    l  测试中,需要知道内部消息,比如说,数据库表是否改动,按钮是否改变;

    l  压力测试;

    总之,越重复性测试越需要自动化测试。

    4.       不适合自动化测试

    l  模糊性测试,应用程序的易用性;

    l  一次性测试;

    l  尽可能快地得到测试结果;

    l  随机测试,没有章点;

    l  测试没有预期结果。

    5.       自动化测试与手工测试流程异点

    手工:

    l  执行用户动作;

    l  等待计算机处理;

    l  检查实际结果与预期结果是否一致;

    l  逐步执行,直到应用程序被执行。

    自动化测试:

    l  录制脚本;a. 录制  b. 编写脚本

    l  运行脚本;

    l  添加检查点;

    l  反复运行。

    6.      自动化测试步骤

    l  规划测试;

    在做测试之前,研究系统,采用什么技术,测试哪些模块等。

    l  创建测试;

    设计测试案例;

    开发测试脚本。

    l  执行脚本

    l  分析结果

    7.       插件

          不同程序应用不同插件,根据被测系统使用的语言选择适当的插件。

     

     

     

     

     

  • 用户登录---自动化功能测试实例

    2010-09-20 17:18:45

      用户管理登录功能测试

      下面脚本是本人实际项目,外网无法链接,今天编写自动化测试第一个实例,作为以后学习的起点碑!

     

    1. 设置QTP

      打开QTP,点击【record】,在web选项卡中,输入录制地址为:http://localhost:8088/MDS4000,点击【确定】开始录制脚本;

       录制步鄹:

       a. 进入系统首页;

       b. 输入用户名、密码,点击【登陆】

       c. 安全退出系统

    2. 录制脚本如下:

     Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统_2").WebEdit("username").Set "fresh_air"
    Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统_2").WebEdit("password").SetSecure "4c972c179fbe2bf7f707b4be3977663c47638cbd

    "Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统_2").Image("Submit").Click 33,35
    Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统--一次接线图").Link("退出").Click
    Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统_3").Sync
    Browser("MDS4000输变电设备状态监测与故障诊断系统").Close

    3. 参数化用户名、密码
       在关键字视图中,选中username的value,定义Parameter:DataTable  Name:username 保存到当前action中;同理,参数化密码为:password
       在专家视图,脚本如:
     Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统_2").WebEdit("username").Set DataTable("username", dtLocalSheet)
    Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统_2").WebEdit("password").SetSecure DataTable("password", dtLocalSheet)

    4. 设置变量

      在Keyword View关键字视图--DataTable里定义2列,exp_status主要用来保存预期提示信息的输出值;fact_status主要用来保存实际提示信息的输出值。
    5. 设计测试用例
       a. 当用户名为空时,期望输出提示信息:“用户名不能为空!”
       b. 当输入用户名,密码为空时,期望输出提示信息:“密码不能为空!”
       c. 当输入正确用户名、错误密码,期望输出提示信息:“密码不正确!”
       d. 当输入错误用户名、正确密码,期望输出提示信息:“用户名不存在!”
       e. 输入正确用户名、正确密码,登录成功
       注:以上测试用例只设计以上4种,作为演示,在实际项目中,可能会涉及到长度、格式等验证,这里不一一赘述。
    6. 按照以上5种测试用例,在DataTable表格中,输入:
       a. username=   password=123456  exp_status=“用户名不能为空!”
       b. username=fresh_apple   password=  exp_status=“密码不能为空!”
       c. username=fresh_apple   password=000000  exp_status=“密码不正确!”
       b. username=fresh   password=123456  exp_status=“用户名不存在!”
       e. username=fresh_apple   password=123456  exp_status=

    7. 在登录界面,提示信息处,插入文本输出检查点:

    Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统_4").Output CheckPoint("MDS4000输变电设备状态监测与故障诊断系统_2")'插入文本的输出点

    8. 切换到专家视图,定义变量
       dim i '定义行号
       For (i=0 to DataTable.GetSheet("Action1").getRowCount '获取所有行号
    9. 定义保存预期、实际输出值的变量
       Dim fact_outmsg '读取系统实际提示信息输出值
       Dim exp_outmsg'读取系统预期提示信息输出值
       fact_outmsg = DataTable("fact_status",dtLocalSheet)
       exp_outmsg = DataTable("exp_status",dtLocalSheet)
       If  fact_outmsg<>exp_outmsg Then '当实际值与预期值不相符时
       reporter.ReportEvent 1, "用户登录测试","预期值为:"+exp_outmsg+"实际值为:"+fact_outmsg
       End If
       DataTable.GetSheet("Action1").SetNextRow
    Next
    '登录系统
    10. ok,脚本编写完成,完整脚本:
       Dim i'定义行号
    Dim fact_inf '定义读取系统实际提示信息的变量
    Dim exp_inf'读取系统预期提示信息的变量
    For i = 1 to DataTable.GetSheet("Action1").getRowCount
    Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统_2").WebEdit("username").Set DataTable("username", dtLocalSheet)
    Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统_2").WebEdit("password").SetSecure DataTable("password", dtLocalSheet)
    Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统_2").Image("Submit").Click 33,35
    Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统_4").Output CheckPoint("MDS4000输变电设备状态监测与故障诊断系统_2")'插入文本的输出点
    fact_inf = dataTable("fact_status",dtLocalSheet)'将实际输出值赋予变量
    exp_inf = dataTable("exp_status",dtLocalSheet)
    If  fact_inf<>exp_inf Then
     reporter.ReportEvent 1,"登陆功能测试","预期值为:"+exp_inf+"实际值为:"+fact_inf
    End If

    dataTable.GetSheet("Action1").SetNextRow '获取下一行数据

    Next

    '进入系统
    Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统--一次接线图").Link("退出").Click
    Browser("MDS4000输变电设备状态监测与故障诊断系统").Page("MDS4000输变电设备状态监测与故障诊断系统_3").Sync
    Browser("MDS4000输变电设备状态监测与故障诊断系统").Close

     

  • 取得当前日期,以月/日/年格式显示

    2010-05-20 11:48:35

       这几天一直用QTP自带的飞机订票系统进行QTP实践练习,在订票时,首先需要输入订票日期,几天后,在进行回放时,订票日期总是显示有误,解决办法:

       Dim riqi

       取得系统当前日期,以月、日、年格式显示后2位

       riqi = Right("0"&month(date),2)&"/"&Right("0"&Day(date+1),2)&"/"&Right("0"&year(date),2)
       Window("Flight Reservation").WinObject("Date of Flight:").Type riqi


     

     

     

  • 验证码解决办法

    2010-04-29 10:54:04

        利用QTP录制登陆页面,往往会碰到验证码,由于验证码是系统随机产生的,在回放时,往往会出错,以下我提供一种简单的解决办法:

       Dim mycode
       mycode = Inputbox("请输入验证码:")
       Browser("日志 - 51Testing软件测试网-中国软件测试人的精神").Page("安全提问 - 51Testing软件测试  网").WebEdit("seccode").Set mycode

     

  • QTP--Web事件的录制

    2009-07-03 14:36:03

                                     QTP--webevent

       在录制web页面时,系统默认设置录制鼠标、键盘操作的轨迹,有时,当光标滑过某功能区时,系统会显示该功能模块一系列的内容,此时,按照QTP默认设置录制时,是无法录制出来的,这时,我们需要设置QTP的配置,步骤如下:

       1. 打开QTP菜单栏Tools---Web Event Recording Configuration

       2. 点击【Custom Settings】---Any Web Object ---onmouseover, record选中下拉列表:Enabled

       3. 点击【ok】

Open Toolbar