• QTP(16)


    一、QTP项目(ECShop)
      1、ECShop是一个开源免费的一个B2C的电子商务系统,主要用于商家和顾客进行商品交易操作。


      2、ECShop分为前台和后台两个子系统:
        (1)ECShop前台:顾客用于搜索商品、浏览商品、下单、结算、跟踪订单、投诉建议等。
        (2)ECShop后台:商家用于管理商品、上下架、促销管理、订单管理、报表统计、系统设置、会员管理、短信和邮件群发等等。
          http://localhost/ws/ecshop/upload/admin/index.php进入后台
          管理员姓名:admin
          密码:admin123

          http://localhost/ws/ecshop/upload/index.php进入前台

      3、项目准备:
        (1)配置ECShop后台登录页显示验证码:
          a.登录进入后台
          b.选择左侧的“系统设置”->“验证码管理”
          c.右侧勾选“后台管理员登录”复选框,点击“保存设置”
          d.点击“退出”
        (2)QTP在录制前配置:QTP->Tools->Options->Active Screen->勾选“Load ActiveX controls”复选框,点击“OK”
          说明:如果忘记在录制前做该配置,那么查看Active Screen视图中截图时,报警告“当前的安全设置禁止运行该页中的ActiveX控件,因此,该页可能无法正常显示”
        (3)ECShop后台登录成功后,偶尔报错“transport.js/error:缺少对象”,是ECShop缺陷。

            

          解决方案:测试时,一旦出现弹出信息框,就先添加“确定”按钮对象到对象仓库,在专家视图点击“确定”的步骤前,判断“确定”的父对象(就是弹出对话框)对象如果存在,就点击“确定”。
          使用的技术:Exist、If


      4.复习QTP做自动化测试基本的流程:
        (1)制定测试计划
        (2)准备测试用例
        (3)录制测试脚本
        (4)增强测试脚本
        (5)调试测试脚本
        (6)用于回归测试
        (7)完成测试总结报告


      5.ECShop后台登录模块
        (1)范围:三个输入框和一个按钮组成的功能。
        (2)熟悉被测系统需求的途径:
          a.需求说明书---测试依据
          b.设计文档
          c.用户手册、管理员手册、安装手册
          d.操作已有被测系统界面
          e.界面原型(假界面)
          f.投诉、FAQ等
        (3)假定:当前版本ECShop后台登录模块没有缺陷,也就是说当前版本被测系统的功能实现完全符合需求说明书。

          任务一:操作现有被测系统,分析点击“进入管理中心”后,被测系统有哪些种反应?---10分钟
            a.登录ECShop后台
            b.弹出提示框“管理员用户名不能为空”
            c.弹出弹出框“您没有输入验证码”
            d.弹出弹出框“管理员用户名不能为空,您没有输入验证码”
            e.网页跳转到错误信息页面“您输入的账号信息不正确”
            f.网页跳转到错误信息页面“您输入的验证码不正确”

        (4)设计测试用例:
          a.单个输入框分析:等价类
            用户名文本框:正确、为空、错误
            密码文本框:正确、为空、错误
            验证码文本框:正确、为空、错误
          b.输入项组合:正交表

            准备:4个Excel文件
            数据_ECShop_后台登录_模板.xls

              

            用例_ECShop_后台登录_z.xls

              

            用例_ECShop_后台登录_模板.xls

              

            数据_ECShop_后台登录_z.xls

              

          任务二:参照用例_ECShop_后台登录_模板.xls,设计测试用例(大概10-15条左右)---15分钟
            要求:覆盖所有的6种预期结果,相同的预期结果使用相同的预期结果编号

          任务三:参照数据_ECShop_后台登录_模板.xls,设计测试数据(大概15-20条左右)---15分钟
            要求:覆盖所有的测试用例,每条测试用例至少设计一条测试数据
            说明:错误的验证码最好设计位数错误或字符类型错误的验证码。

    二、制作测试脚本
      1.设计代码的结构:(分为几个Action?)
        Action1导入---导入数据到DataTable的“后台登录”表单中(执行1次)
        Action2后台登录---向三个文本框中输入数据、点击“进入管理中心”按钮、根据不同情况做不同的检查、恢复到空白的登录页(执行多次)
        Action3退出---关闭浏览器(执行1次)


      2.设计主Action的结构(Action2中包含几个Function?)
        (1)向三个文本框中输入从DataTable中获取的数据
        (2)点击“进入管理中心”按钮
        (3)判断从DataTable中获取的“预期结果编号”等于不同值时,生成6个分支,在每个分支中调用一个Function
        (4)实现6个Function的函数体:
          a.做相应的检查
          b.恢复到空白的登录页


      3.创建3个Action,注意Action顺序


      4.实现Action1导入数据的代码
        '将E盘根目录下的“数据_ECShop_后台登录_z.xls”文件的“后台登录”表单数据导入到运行时数据表的“后台登录”表单中
        DataTable.ImportSheet "E:数据_ECShop_后台登录_z.xls","后台登录","后台登录"
        注意:必须先关闭Excel文件,再运行该代码
        问题:
          a.有多余的有效行,需要打开Excel文件,来删除整行
          b.Excel不能有超链接,也不能合并单元格


      5.实现Action2的代码
        (1)自动启动的方式录制输入三个文本框数据后,点击“进入管理中心”按钮的步骤到Action2中
        (2)做DataTable参数化
        (3)书写分支结构,判断要做什么检查
        (4)思考:每个分支中调用的Function是否有参数?是否有返回值?
          ---无参数、无返回值

    后台登录Action()
    '(1)向三个文本框中输入从DataTable中获取的数据
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebEdit("username").Set DataTable("用户名",dtLocalSheet)
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebEdit("password").Set DataTable("密码",dtLocalSheet)
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebEdit("captcha").Set DataTable("验证码",dtLocalSheet)
    '(2)点击“进入管理中心”按钮
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebButton("进入管理中心").Click
    '(3)判断从DataTable中获取的“预期结果编号”等于不同值时,
    '生成6个分支,在每个分支中调用一个Function
    Select Case DataTable("预期结果编号",dtLocalSheet)
    Case "BGL001"
    	Call Chk1()'调用名称为Chk1的Function
    Case "BGL002"
    	Call Chk2()'调用名称为Chk2的Function
    Case "BGL003"
    	Call Chk3()'调用名称为Chk3的Function
    Case "BGL004"
    	Call Chk4()'调用名称为Chk4的Function
    Case "BGL005"
    	Call Chk5()'调用名称为Chk5的Function
    Case "BGL006"
    	Call Chk6()'调用名称为Chk6的Function
    End Select
    
    '(4)实现6个Function的函数体:
    '	a.做相应的检查
    '	b.恢复到空白的登录页
    Function Chk1()
    	print "=====Chk1开始==========="
    End Function
    

    三、实现每个函数体
      1.Chk1:
        (1)做检查:BGL001登录Ecshop后台(检查“退出”出现)
          技术:自定义检查点、“退出”的Exist属性
        (2)恢复到空白的登录页
          检查成功:点击“退出”
          检查失败:先结束IE进程、再启动ECShop
        (3)设计Chk1函数体代码的结构:
          If "退出"对象.Exist(3) Then
            点击“退出”
            reporter记录成功
          Else
            截图
            reporter记录失败
            结束IE进程
            启动ECShop后台
          End if
        (4)准备工作:将“退出”添加到对象仓库中
        (5)问题:当检查失败时,截图不正确,未截取到错误信息的界面
          原因:截图不及时,错误信息界面只出现3秒的时间。
          解决方案:不管检查成功还是失败,都做截图,就可以将截图的步骤上移到点击“进入管理中心”按钮的步骤之后。
        (6)问题:每行数据运行后截图都会覆盖上一行数据运行后的截图
          原因:截图文件名称是固定的,截图的步骤在主代码中
          解决方案:将DataTable的“测试数据编号”连接到截图文件名称中
          fn="D:ECShop后台登录"&DataTable("测试数据编号",dtLocalSheet)&".png"
          例:
            ECShop后台登录D00001.png
            ECShop后台登录D00002.png

      2.Chk2
        (1)做检查:BGL002弹出信息框提示信息“管理员用户名不能为空”
          a.检查弹出信息框
            技术:自定义检查点、Exist属性
          b.检查信息内容正确
            技术:文本检查点
        (2)恢复到空白的登录页
          ab都成功:点击“确定”后,清空密码和验证码的文本框
          a成功b失败:点击“确定”后,清空密码和验证码的文本框
          a失败:结束IE进程,再启动ECShop
        (3)设计Chk2函数体代码的结构:
          If 信息框对象.Exist(2) Then
            记录a检查成功
            文本检查点
            点击“确定”
            清空密码文本框
            清空验证码文本框
          Else
            记录a检查失败
            结束IE进程
            启动ECShop后台
          End if
        (4)注意:补录使用的浏览器,最好是由QTP启动的浏览器,而不是手工启动的

          任务:参照Chk2,实现Chk4和Chk5的函数体
            BGL004 弹出信息框提示信息“您没有输入验证码”
            BGL005 弹出信息框提示信息“管理员用户名不能为空!您没有输入验证码”

          If 信息框对象.Exist(2) Then
            记录a检查成功
            文本检查点
            点击“确定”
            清空用户名文本框
            清空密码文本框
          Else
            记录a检查失败
            结束IE进程
            启动ECShop后台
          End if

      3.Chk3
        (1)做检查:BGL003跳到系统信息页面“您输入的帐号信息不正确。”
          a.跳转到系统信息页面
            技术:自定义检查点、Exist属性
            选取的控件:“您输入的账号信息不正确”的页面元素
          b.信息内容正确
            技术1:文本检查点
            技术2:WebElement对象的文本,可以直接检查对象Exist属性即可,因为关键属性中存在innertext属性记录文本内容。
        (2)问题:如何添加出现时间很短的对象到对象仓库?
          方法一:对象仓库页面中的“+”Add Objects to Local添加,要求操作速度要比较快(水上漂)
          方法二:(过河拆桥法)
            a.搭桥:补录该对象所在界面的动作,例如:返回上一页
            b.过河:通过Active Screen视图来添加对象到对象仓库
            c.拆桥:删除补录的步骤
        (3)恢复到空白的登录页
          检查成功:等待3秒,或者点击“返回上一页”
          检查失败:结束进程、启动ECShop
        (4)设计Chk3函数体代码的结构:
          If WebElement对象.Exist(3) Then
            记录成功
            等待3秒
          Else
            记录失败
            结束进程
            启动ECShop
          End if
        (5)问题:出现系统信息,但是检查时出现错误
          原因:检查不及时,系统信息页面3秒后会自动跳转,过了3秒才检查就检查失败。
          解决方案一:适当缩短步骤间的运行间隔时间
            注意:不要将步骤间隔时间设置太短,建议最少设置500毫秒
          解决方案二:将Chk3的分支移动到Chk1和Chk2的分支之前,并且删除不必须的步骤,例如Print语句。
            Select Case DataTable("预期结果编号",dtLocalSheet)
            Case "BGL003"
              Call Chk3()'调用名称为Chk3的Function
            Case "BGL001"
              Call Chk1()'调用名称为Chk1的Function
            Case "BGL002"
              Call Chk2()'调用名称为Chk2的Function
            Case "BGL004"
              Call Chk4()'调用名称为Chk4的Function
            Case "BGL005"
              Call Chk5()'调用名称为Chk5的Function
            Case "BGL006"
              Call Chk6()'调用名称为Chk6的Function
            End Select
          解决方案三:将点击“进入管理中心”按钮的步骤从主代码移动到每个函数的函数体开头位置。

            任务一:调试Chk3
            任务二:参照Chk3,实现Chk6
              BGL006 跳到系统信息页面“您输入的验证码不正确。”
            任务三:运行所有行
            任务四:实现Action3退出的步骤

        常见问题:
          1、被测系统未启动
            检查录制和运行设置
          2、<测试数据编号> column does not exist.列不存在
            检查回放前是不是忘记关闭数据文件
          3、“进入管理中心”按钮步骤出错
            检查是否在主代码中忘记删除“进入管理中心”按钮步骤

        Test1_ECShop_后台登录_z

    导入Action()
    '将E盘根目录下的“数据_ECShop_后台登录_z.xls”文件
    '的“后台登录”表单数据导入到
    '运行时数据表的“后台登录”表单中
    DataTable.ImportSheet "E:数据_ECShop_后台登录_z.xls","后台登录","后台登录"
    
    后台登录Action()
    Option Explicit
    Dim url'ECShop后台网址
    url="http://localhost/ws/ecshop/upload/admin/index.php"
    Dim fn'file name截图文件的文件名称
    fn="D:ECShop后台登录"&DataTable("测试数据编号",dtLocalSheet)&".png"
    '(1)向三个文本框中输入从DataTable中获取的数据
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebEdit("username").Set DataTable("用户名",dtLocalSheet)
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebEdit("password").Set DataTable("密码",dtLocalSheet)
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebEdit("captcha").Set DataTable("验证码",dtLocalSheet)
    
    
    '(3)判断从DataTable中获取的“预期结果编号”等于不同值时,
    '生成6个分支,在每个分支中调用一个Function
    Select Case DataTable("预期结果编号",dtLocalSheet)
    Case "BGL003"
    	Call Chk3()'调用名称为Chk3的Function
    Case "BGL001"
    	Call Chk1()'调用名称为Chk1的Function
    Case "BGL002"
    	Call Chk2()'调用名称为Chk2的Function
    Case "BGL004"
    	Call Chk4()'调用名称为Chk4的Function
    Case "BGL005"
    	Call Chk5()'调用名称为Chk5的Function
    Case "BGL006"
    	Call Chk6()'调用名称为Chk6的Function
    End Select
    
    '(4)实现6个Function的函数体:
    '	a.做相应的检查
    '	b.恢复到空白的登录页
    Function Chk1()
    	print "=====Chk1开始==========="
    '(2)点击“进入管理中心”按钮
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebButton("进入管理中心").Click
    '截图
    desktop.CaptureBitmap fn,True
    
    	'===================
    	'如果出现js弹出框,就需要点击“确定”来关闭它
    
    	'===================
    	'检查“退出”出现,如果出现,代表登录成功
    	If Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心_2").Frame("header-frame").Link("退出").Exist(3) Then
    		'点击“退出”
    		Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心_2").Frame("header-frame").Link("退出").Click
    		'记录成功
    		reporter.ReportEvent micPass,"BGL001检查登录成功","登录成功"
    	Else
    
    		'记录失败
    		reporter.ReportEvent micFail,"BGL001检查登录成功","登录失败",fn
    		'结束IE进程
    		SystemUtil.CloseDescendentProcesses
    		'启动ECShop后台
    		SystemUtil.Run "iexplore.exe",url
    	End If
    End Function
    
    Function Chk2()
    	print "=====Chk2开始==========="
    
    '(2)点击“进入管理中心”按钮
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebButton("进入管理中心").Click
    '截图
    desktop.CaptureBitmap fn,True
    
    	'a检查:检查是否弹出提示框
    	If Browser("ECSHOP 管理中心").Dialog("Microsoft Internet Explorer").Exist(2) Then
    		'记录a检查成功
    		reporter.ReportEvent micPass,"BGL002","已弹出提示框"
    		'文本检查点:检查提示信息内容为“管理员用户名不能为空”
    		Browser("ECSHOP 管理中心").Dialog("Microsoft Internet Explorer").Static("提示信息").Check CheckPoint("- 管理员用户名不能为空!")
    		'点击“确定”
    		Browser("ECSHOP 管理中心").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
    		'清空密码文本框
    		Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心_3").WebEdit("password").Set ""
    		'清空验证码文本框
    		Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心_3").WebEdit("captcha").Set ""
    	Else
    		'记录a检查失败
    		reporter.ReportEvent micFail,"BGL002","未弹出提示框",fn
    		SystemUtil.CloseDescendentProcesses
    		SystemUtil.Run "iexplore.exe",url
    	End If
    End Function
    
    Function Chk3()
    	print "=====Chk3开始==========="
    
    '(2)点击“进入管理中心”按钮
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebButton("进入管理中心").Click
    '截图
    desktop.CaptureBitmap fn,True
    
    	If Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebElement("warning").Exist(3) Then
    		reporter.ReportEvent micPass,"BGL003","跳转到账号信息不正确的页面"
    		wait 3
    	Else
    		reporter.ReportEvent micFail,"BGL003","未跳转到账号信息不正确的页面",fn
    		SystemUtil.CloseDescendentProcesses
    		SystemUtil.Run "iexplore.exe",url
    	End If
    'Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心_4").WebButton("进入管理中心").Click
    'Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Link("返回上一页").Click
    End Function
    
    Function Chk4()
    	print "=====Chk4开始==========="
    '(2)点击“进入管理中心”按钮
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebButton("进入管理中心").Click
    '截图
    desktop.CaptureBitmap fn,True
    
    	'a检查:检查是否弹出提示框
    	If Browser("ECSHOP 管理中心").Dialog("Microsoft Internet Explorer").Exist(2) Then
    		reporter.ReportEvent micPass,"BGL004","已弹出提示框"
    		'文本检查点:检查提示信息内容是“您没有输入验证码”
    		Browser("ECSHOP 管理中心").Dialog("Microsoft Internet Explorer").Static("提示信息").Check CheckPoint("- 您没有输入验证码!")
    		'点击“确定”
    		Browser("ECSHOP 管理中心").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
    		'清空用户名文本框
    		Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心_3").WebEdit("username").Set ""
    		'清空密码文本框
    		Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心_3").WebEdit("password").Set ""
    	Else
    		reporter.ReportEvent micFail,"BGL004","未弹出提示框",fn
    		SystemUtil.CloseDescendentProcesses
    		SystemUtil.Run "iexplore.exe",url
    	End If
    End Function
    
    Function Chk5()
    	print "=====Chk5开始==========="
    '(2)点击“进入管理中心”按钮
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebButton("进入管理中心").Click
    '截图
    desktop.CaptureBitmap fn,True
    
    	'a检查:检查是否弹出提示框
    	If Browser("ECSHOP 管理中心").Dialog("Microsoft Internet Explorer").Exist(2) Then
    		reporter.ReportEvent micPass,"BGL005","已弹出提示框"
    		'文本检查点:检查提示信息内容为“管理员用户名不能为空,您没有输入验证码”
    		Browser("ECSHOP 管理中心").Dialog("Microsoft Internet Explorer").Static("提示信息").Check CheckPoint("- 管理员用户名不能为空! - 您没有输入验证码!")
    		'点击“确定”
    		Browser("ECSHOP 管理中心").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
    		'清空密码文本框
    		Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebEdit("password").Set ""
    	Else
    		reporter.ReportEvent micFail,"BGL005","未弹出提示框",fn
    		SystemUtil.CloseDescendentProcesses
    		SystemUtil.Run "iexplore.exe",url
    	End If
    End Function
    
    Function Chk6()
    	print "=====Chk6开始==========="
    	'(2)点击“进入管理中心”按钮
    	Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebButton("进入管理中心").Click
    	'截图
    	desktop.CaptureBitmap fn,True
    	If Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebElement("warning_2").Exist(3) Then
    		reporter.ReportEvent micPass,"BGL006","跳转到您输入的验证码不正确的页面"
    		wait 3
    	Else
    		reporter.ReportEvent micFail,"BGL006","未跳转到您输入的验证码不正确的页面",fn
    		SystemUtil.CloseDescendentProcesses
            SystemUtil.Run "iexplore.exe",url	
    	End If
    'Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebButton("进入管理中心").Click
    'Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Link("返回上一页").Click
    End Function
    
    退出Action()
    '关闭浏览器
    Browser("ECSHOP 管理中心").Close

    四、补充:恢复数据
      1、如果测试的是登录、搜索这类的功能时,不用恢复数据。


      2、如果测试的是注册、添加XXX、删除XXX、修改XXX的功能时,需要恢复数据。


      3、注册、添加XXX
        方法一:在不允许重复的数据上,连接系统日期和系统时间。
          例如注册账号a201826153751、a201826153758
        方法二:添加a->检查a添加成功->删除a


      4、删除XXX
        方法:删除a->检查a删除成功->添加a


      5、修改XXX
        方法:修改a为b->检查变为b->修改b为a


      6、例子:ECShop后台添加会员的功能
        (1)设计代码的结构(划分为几个Action?)
          Action1登录---登录(执行1次)
          Action2添加会员---点击“添加会员”菜单、输入各个数据、点击“确定”、点击“会员列表”菜单、输入会员名称,点击“搜索”,检查表格中数据正确,勾选表格中复选框,点击“删除会员”(执行多次)
          Action3退出---点击“退出”,关闭浏览器(执行1次)
          Test2_ECShop_添加会员_z

    登录Action()
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebEdit("username").Set "admin"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebEdit("password").SetSecure "5a796915b9875773cf69024482f0db05054510bd159d"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebEdit("captcha").Set "0"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").WebButton("进入管理中心").Click
    wait 3
    
    添加会员Action()
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("menu-frame").Link("添加会员").Click
    wait 2
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebEdit("username").Set DataTable("会员名称",dtLocalSheet)
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebEdit("email").Set DataTable("邮件地址",dtLocalSheet)
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebEdit("password").Set DataTable("登录密码",dtLocalSheet)
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebEdit("confirm_password").Set DataTable("确认密码",dtLocalSheet)
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebList("user_rank").Select "代销用户"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebRadioGroup("sex").Select "2"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebList("birthdayYear").Select "1959"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebList("birthdayMonth").Select "02"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebList("birthdayDay").Select "02"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebEdit("credit_line").Set "1000"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebEdit("extend_field1").Set "zhengxuejing@163.com"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebEdit("extend_field2").Set "12345678"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebEdit("extend_field3").Set "01012345678"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebEdit("extend_field4").Set "01087654321"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebEdit("extend_field5").Set "13012345678"
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame").WebButton("确定").Click
    wait 3
    Select Case DataTable("预期结果编号",dtLocalSheet)
    Case "AU001"
    	Call Chk1()
    Case "AU002"
    	Call Chk2()
    End Select
    
    Function Chk1()
    	Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("menu-frame").Link("会员列表").Click
    	wait 2
    	Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame_2").WebEdit("keyword").Set DataTable("会员名称",dtLocalSheet)
    	Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame_2").WebButton("搜索").Click
    	wait 3
    	Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame_2").WebTable("编号").Check CheckPoint("编号")
    	Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame_2").WebCheckBox("checkboxes[]").Set "ON"
    	Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("main-frame_2").WebButton("删除会员").Click
    	wait 3
    End Function
    
    Function Chk2()
    	If Browser("ECSHOP 管理中心").Dialog("Microsoft Internet Explorer").Exist(2) Then
    		Browser("ECSHOP 管理中心").Dialog("Microsoft Internet Explorer").Static("- 输入的密码和确认密码不一致。").Check CheckPoint("- 输入的密码和确认密码不一致。")
    		Browser("ECSHOP 管理中心").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
    	Else
    		Dim fn
    		fn="D:添加会员AU002.png"
    		desktop.CaptureBitmap fn,True
    		reporter.ReportEvent micFail,"AU002","未弹出提示框",fn
    		SystemUtil.CloseDescendentProcesses
    		SystemUtil.Run "iexplore.exe","http://localhost/ws/ecshop/upload/admin/index.php"
    		RunAction "登录", oneIteration
    	End If
    End Function
    
    退出Action()
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心").Frame("header-frame").Link("退出").Click
    Browser("ECSHOP 管理中心").Page("ECSHOP 管理中心_2").Sync
    Browser("ECSHOP 管理中心").Close

        (2)实现DataTable参数化:
          会员名称、邮件地址、登录密码、确认密码
          zwh zwh@163.com 123456 123456
          z123 z123@163.com 654321 654321

  • 相关阅读:
    Python学习笔记21:数据库操作(sqlite3)
    JAVA的extends使用方法
    thinkphp5的Illegal string offset 'id'错误
    thinkphp5项目--个人博客(五)
    语法错误: unexpected ''); ?></span></span></h2> ' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';'
    thinkphp5.0的验证码安装和相关错误
    thinkphp5项目--个人博客(四)
    thinkphp5项目--个人博客(三)
    NAS是什么
    百度编辑器简介及如何使用
  • 原文地址:https://www.cnblogs.com/KalosOwen/p/8975811.html
Copyright © 2020-2023  润新知