QTP脚本之登录中含下拉框

上一篇 / 下一篇  2010-04-20 22:56:52

  最近一段时间公司准备要做功能自动化测试,所以一直都在学习QTP的使用,不过以前没有学过VBScript,他的语法和 特点着实让我痛苦了一翻,不过还好天下编程是一家,终究还是解决了前段时间遇到的问题。

  脚本目标:测试公司自主研发的测试管理软件 TMT的登录页面的功能

  软件环境:B/S系统,aspx,IIS,内网环境

  下面我们来看看这个登录页面,跟其它登录页面有啥不同

  登录名:input

   密码:input and password

  数据库:weblist

  下面我们来看看登录 的运行流程(这里没有考虑登录名与数据库的权限关联问题,因为我们这个系统,测试人员都可以登录每个数据库的)

  1、正确的用户名 ->正确的密码->任意下拉框的值->主页->退出链接

  2、错误的用户名->或错误的密码->任 意下拉框的值->登录失败

  从上面分析可知,脚本的难点在于每个用户都要执行下拉框中的每个值,保证每个正确用户名都可以登录每个 数据库,每个错误的用户名都不能任意数据库。(其实也就是一个for循环,呵呵)

  第一步,让我们开始登录脚本吧。录制的流程可以按1来 录制。

  脚本内容略

  第二步,添加检查点,以及用户名和密码的参数化,这里用户名和密码从Gloloal表中获 取,Gloloal表中的数据的设置很关键,数据设置的如何,间接影响了测试效果的如何。另外,在表中建一列iStatus,用于验证数据的正确性。

   详细步骤略

  Gloloal表中的内容为

  UserName   Password   iStatus

   Qwen             qwen              ‘空代表正确登录

   Qwen1          qwen             no ‘no代表不能登录

   Qwen2          qwen             no

  第三步,修改脚本。

  按我们上面分析的内容进行修改,修改后的脚本内容如下:

Dim ItemsCount 'ItemCount用于获取下拉框的项数

Dim I '用于设置循环中的初值

ItemsCount=Browser("TMT系统登录").Page("TMT系统登 录").WebList("select").GetROProperty("items count")

For i=0 to ItemsCount-1 step 1 '每一个用户名都重复一次下拉框中的内容,每次步长增长1

      Browser("TMT系统登录").Page("TMT系统登录").WebEdit("WebEdit").Set DataTable("userName", dtGlobalSheet)’参数化用户名

      Browser("TMT系统登录").Page("TMT系统登录").WebEdit("WebEdit_2").Check CheckPoint("WebEdit_2")'检查密码框的password属性

      Browser("TMT系统登录").Page("TMT系统登录").WebEdit("WebEdit_2").SetSecure DataTable("passWord", dtGlobalSheet)’参数化密码

      Browser("TMT系统登录").Page("TMT系统登录").WebList("select").Check CheckPoint("select") '检查下拉框select的数量

      Browser("TMT系统登录").Page("TMT系统登录").WebList("select").Select I ‘获取下拉框中的值

      Browser("TMT系统登录").Page("TMT系统登录").WebButton("登录").Click’登录按钮

      Dim iStatus'用于判断数据的状态

      iStatus=DataTable("status",dtGlobalSheet)

      If iStatus="" and I<>0 Then’由于下拉框中的第一项为”请选择数据库”,所以这项得排除正确登录的流程

             Browser("TMT系统登录").Page("全部任务").Sync

             Browser("TMT系统登录").Page("全部任务").Link("退出系统").Click'退出链接或者重新打开登录页面

             'Browser("TMT系统登录").Page("TMT系统登录").Sync

      elseIf iStatus="no" Then

             Reporter.ReportEvent micPass,"登录","登录失败" 'micFail结果判断为fail,micPass结果判断为pass,由于登录失败是我们想要的结果,所以在报告中使其结果判断为pass

             Browser("TMT系统登录").Page("TMT系统登录").Sync'重新加载该页,这里很关键,如果不重新加载该页,会报错

      End If

Next

  'Browser("TMT系统登录").Close ‘运行完成后,关闭系统

  第四步:运行脚本,查看所采用的测试值,结果全pass。

  第五步:接下来我们就应该完善表中的值了,分N多种情况进行细划。

TAG:

文青山 引用 删除 wolaizhinidexin   /   2010-04-22 11:40:16
转载作品
 

评分:0

我来说两句

日历

« 2024-04-25  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 51094
  • 日志数: 105
  • 图片数: 2
  • 建立时间: 2010-03-13
  • 更新时间: 2011-02-11

RSS订阅

Open Toolbar