发布新日志

  • TD运行过程出现RPC报错的处理方案一

    2008-11-19 18:54:09

    现象:
    TD启动后,使用Site Administrator或Test Director功能时,提示“RPC 错误”。
    关联现象:
    1、 IIS中虚拟目录TDBIN的属性“应用程序保护”为“中(共用)”,且点击“创建”按钮后,改变“应用程序保护”为“高(独立)”,提示“COM+错误”;
    2、 TestDriector Checker运行“Check All”时,“Virtual Directory”项有问题(?或×)。
    3、 Distributed Transaction Cordinator服务不可启动。
    问题:可在“应用程序”日志中看到MS  DTC启动失败的错误信息。DTC启动失败导致RPC问题。
    解决方法:
    1、 根据“应用程序”日志提示,运行msdtc –restlog命令建立DTC日志文件;
    2、 启动Distributed Transaction Cordinator服务;
    3、 在IIS中,虚拟目录TDBIN的属性页点击“创建”按钮,将“应用程序保护”为“高(独立)”。

    此外,RPC服务的依赖关系中还存在一些其他的服务,如果其他服务不能启动,也会影响RPC正常启动。同样的道理,如果其他服务不能启动,应用程序日志会有相应提示,依照提示,应该可以解决问题。

  • 右键菜单操作自动测试

    2008-11-13 13:35:54

    示例一:

    rem 在一个页面的某链接上按右键
    Browser("Google").Page("qwewqe - Google 搜索").Link("qwewqe 的博客空间联城网[免费发布信息][分类信息,信").Click micRightBtn

    Dim wshShell
          Set wshShell = CreateObject("Wscrīpt.Shell")
    '模拟键盘操作,向下移动两次
    For i=1 to 2
    wshShell.SendKeys "{DOWN}"   '模拟键盘操作
     Next
     '模拟键盘操作,按回车键,完成在新窗口中打开链接
       wshShell.SendKeys "{ENTER}" 


    示例二:

    rem  在Word中复制粘贴一段文字的右键操作
    '选择需要复制的原文字,Drop后面的内容定义了文字块的坐标
    Window("Microsoft Word").WinObject("Microsoft Word 文档").Drag 510,180
    Window("Microsoft Word").WinObject("Microsoft Word 文档").Drop 645,178
    '按右键
    Window("Microsoft Word").WinObject("Microsoft Word 文档").Click 576, 182, micRightBtn

    Dim wshShell
          Set wshShell = CreateObject("Wscrīpt.Shell")
    '模拟键盘操作,向下移动两次
    For i=1 to 2
    wshShell.SendKeys "{DOWN}"   '模拟键盘操作
     Next
     '模拟键盘操作,按回车键,完成复制操作
    wshShell.SendKeys "{ENTER}"   '模拟键盘操作


    '在需要粘贴的位置按右键
    Window("Microsoft Word").WinObject("Microsoft Word 文档").Click 393, 564, micRightBtn
    '模拟键盘操作,在右键菜单上向下移动三次,按回车键,完成粘贴操作
    For i=1 to 3
    wshShell.SendKeys "{DOWN}"   '模拟键盘操作
     Next
    wshShell.SendKeys "{ENTER}"   '模拟键盘操作
  • 资料的下载与应用

    2008-11-07 09:39:58

    当我们在学习一种新技术、一个新工具应用的时候,很希望有一种快速的学习方法,使自己在最短的时间掌握需要掌握的知识。 网络确实是我们学习期间可以利用的最好资源。但网络上的资料五花八门,有入门资料,有详细介绍,也有高手的讨论。那么我们应该如何利用这些资料呢? 个人认为,必须随时清醒地认识自己需要什么! 首先,我们一点都不了解新东东的时候,还是先找点有案例操作的资料看看,不要追求资料内容的全面,只要有可操作性就好。按照资料上的案例去操作一下,掌握基本的概念和方法。 然后,搜索内容详尽的资料,分类存放在自己的资料夹。这些详尽的资料只需要有一份完整的参考书就好!其余哪些似乎很有用的资料就应该找到一个就仔细看一个,搞不懂的暂时不要下载。你有过这样的经历吗?下载了一大堆资料,放几年后当垃圾扔了,一次也没有时间看过!浪费网络资源和硬盘空间啊! 所以,有了基本知识后再去有针对性地找资料;不懂的时候不要随便下资料;下的资料就应该马上去研究;尽量不要制造人为的垃圾。
  • 初学自动测试工具之我见

    2008-10-31 22:13:24

        很多初学自动测试工具的人不知道使用测试工具的关键问题是什么。我觉得主要问题是下面几点:

        1、首先必须进行完善的用例设计和测试过程设计

        使用测试工具进行测试工作的第一步并不是录制脚本。而是应该在理解被测对象的基础上,进行用例设计和测试过程设计。用例设计包括用例数据、用例测试过程、预期结果等。然后将用例测试过程录制成测试脚本,将用例数据进行参数化。

        完成一项功能或多项相关功能的测试时,需要设计合理的测试过程。不同的测试场景使用独立的一项测试操作实现(表现为一个独立的测试脚本文件)。多项相关功能测试时,按设计的测试过程进行测试操作的组合(如使用QTP的操作调用)。这样,每一个测试场景使用不同的测试数据,且各个测试场景独立存在,但有有机地结合起来形成一个完整功能的测试。

        2、检查点是需要进行判断的

        初学者大多会按照教程设置各种检查点,但并不会看测试结果中检查点的结果。其实,许多检查点只表明了两种结果:“通过”或“失败”。

        关键的问题是:失败的理由、场景、状态等在结果中很难看出来。所以,在设置检查点后,还必须对检查点结果按照测试过程的业务逻辑进行判断,然后输出更为详细的结果。具体示例见我的上篇日志中的“   reporter.ReportEvent 1,"新增学生信息错误","信息存入数据库,但数据没有在保存后立即显示,数据编号:"+  DataTable("stu_ID", dtLocalSheet)
    ”。

        此外,检查点的参数化至关重要,因为只有参数化检查点,才能真正体现系统运行过程中动态的变化!

        3、测试工具不能解决所有问题

        许多初学者总希望测试工具能帮助他们解决所有问题。其实许多测试项目是必须靠手工完成的。如:界面布局的合理性、系统使用的方便性等。

        自动工具永远只是辅助手段!所以测试工作的关键还是对测试对象的理解、测试用例与测试过程的设计。有了完善的用例,不管是手工测试还是自动测试,都是可以很好地完成测试任务的。

        4、录制测试与编写测试脚本的目的是便于重复测试

        既然是为了重复测试,那么就必须认真考虑和设计每个测试活动的前置条件(如在什么样的数据环境下才能开始这个测试活动?)和后置条件(如:本测试活动所录入的数据是否需要保留?)。否则就会很容易出现问题(如:录入数据时关键字重复!)。

  • QTP数据库检查和WEB表格数据检查

    2008-10-25 15:46:33

    一、前提

    使用QTP测试数据输入是否成功。

    在本例中使用三个办法:1、检查页面显示的记录条数;2、根据关键字检查数据库中数据;3、检查页面显示的最后一行数据是否为新增的数据。

    二、方法及过程

    1、录制正常数据录入并保存过程的脚本

    2、在数据保存完,数据列表显示出来后进行检查,定义文本检查、数据库检查(内容见脚本中的说明)

    3、修改脚本,实现数据库数据按数据表关键字检查

    如输入编号为001的学生,检查是否存入了数据库,并使用脚本依次取得数据表的关键字进行数据库检查。

    4、当数据库数据保存成功时,检查数据是否正常显示

    三、测试脚本


    '开始录入新增数据,所需要录入的数据存放在数据表中,循环执行测试,输入多组数据

    Browser("学生信息管理系统").Page("学生资料列表首页").Link("新增").Click


    Browser("学生信息管理系统").Page("新增学生资料页面").WebEdit("studID").Set DataTable("stu_ID", dtLocalSheet)
    Browser("学生信息管理系统").Page("新增学生资料页面").WebEdit("studName").Set DataTable("stu_name", dtLocalSheet)
    Browser("学生信息管理系统").Page("新增学生资料页面").WebEdit("age").Set DataTable("stu_age", dtLocalSheet)

    Browser("学生信息管理系统").Page("新增学生资料页面").WebButton("保  存").Click

    '保存后即回到列表显示页面

    Browser("学生信息管理系统").Refresh    '保证新录入数据后显示出来,正常情况下,不需要该刷新显示的操作

    '检查页面显示的记录数是否新增,根据页面下端显示的记录数进行文本检查,正确数据存放在数据表中
    Browser("学生信息管理系统").Page("学生资料列表最后一页").Check CheckPoint("8")

    rem 检查数据库检索结果是否与输入的数据一致

    Browser("学生信息管理系统").Page("学生资料列表首页").Link("最后一页").Click


    ' 根据数据表的数据,设置数据库检索参数
    Dim sql
    ' 取得数据库检查点的SQL语句
    sql = DbTable("DbTable").GetTOProperty ("Source")
    Dim e_w
    ' 取得SQL语句中条件的位置
    e_w = inStr(sql,"=")
    '    使用DataTable("stu_ID", dtLocalSheet)取得当前参数表中的关键字,使用该关键字在数据库中检索数据
    sql = mid(sql,1,e_w ) + "'" + DataTable("stu_ID", dtLocalSheet) + "')"
    DbTable("DbTable").SetTOProperty "Source", sql

    '  可以使用msgbox sql查看SQL语句是否正确

    Dim row
    Dim stu_id,stu_name


    '数据库检查点建立时,以任意关键字检索一行需要检查的数据,本例检查编号和姓名
    If  DbTable("DbTable").Check (CheckPoint("DbTable_5")) Then    '如果从数据库检索的数据和数据表的数据一致

     '从表对象(设计此程序前,手工从页面获取该WEB表对象)的最后一页取得最后一行的编号和姓名
     row = Browser("学生信息管理系统").Page("学生资料列表最后一页").WebTable("学生资料").RowCount
     stu_id =  Browser("学生信息管理系统").Page("学生资料列表最后一页").WebTable("学生资料").GetCellData(row,3)
     stu_name = Browser("学生信息管理系统").Page("学生资料列表最后一页").WebTable("学生资料").GetCellData(row,4)
     
     '将取得的表对象的编号和姓名与数据表中的数据进行比较
     
     If stu_id =  DataTable("stu_ID", dtLocalSheet) and stu_name =  DataTable("stu_name", dtLocalSheet) Then
      Else
                reporter.ReportEvent 1,"新增学生信息错误","信息存入数据库,但数据没有在保存后立即显示,数据编号:"+  DataTable("stu_ID", dtLocalSheet)
     End If
     Else
      reporter.ReportEvent 1,"新增学生信息错误","信息没有存入数据库,可能是关键字重复或其他问题,数据编号:"+  DataTable("stu_ID", dtLocalSheet)
    End If

    Browser("学生信息管理系统").Page("学生资料列表最后一页").Sync

我的栏目

数据统计

  • 访问量: 3075
  • 日志数: 5
  • 建立时间: 2008-10-25
  • 更新时间: 2008-11-19

RSS订阅

Open Toolbar