数据分布式自动化测试

实习任务:

  • 数据分布式自动化测试:
  • 以组为单位为飞行预订票系统分别造5条如下测试数据
    • 起飞日期
    • 起飞点
    • 到达点
    • 乘客姓名
    • 订票张数
    • 传真号
  • 业务要求:每订一次票即发一个传真
  • 组内先统一自动化脚本的参数化数据格式
  • 然后每个成员各造1列数据放在自己的共享目录中供自动化脚本调用
  • 写代码从参数化表格中提取或修改数据

 一、两位数加法器测试容错

'Action1
createobject("shell.application").MinimizeAll
Window("Program Manager").WinListView("SysListView32").Activate "两位数加法器.exe"

'Action2
Dim a, b

VbWindow("Form1").VbEdit("Text1").Set DataTable("p_Text", dtLocalSheet)
VbWindow("Form1").VbEdit("Text2").Set DataTable("p_Text1", dtLocalSheet)
VbWindow("Form1").VbButton("加").Click

a = VbWindow("Form1").VbEdit("Text1").GetVisibleText
If VbWindow("Form1").Dialog("测试技术").Exist Then
	VbWindow("Form1").Dialog("测试技术").CaptureBitmap"c:\error.bmp", true
	reporter.ReportEvent micPass,"测试容错", "这是两位数加法器执行过程中弹出的容错提示,请检查是否符合需求!", "c:\error.bmp"
	VbWindow("Form1").Dialog("测试技术").WinButton("确定").Click
End If

'Action3
VbWindow("Form1").Close

数据表数据如下:

其中,第1条和第2条数据会弹出“测试技术”提示框。第1条为程序错误,第2条为数据错误。

VbWindow("Form1").Dialog("测试技术").CaptureBitmap"c:\error.bmp", true

上述代码生成一张名为“error.bmp”的提示框图

reporter.ReportEvent micPass,"测试容错", "这是两位数加法器执行过程中弹出的容错提示,请检查是否符合需求!", "c:\error.bmp"

上述代码在结果报告中生成对应报告文字与图片

可以看到在1、2轮执行中有“测试容错”文件,而第3轮没有


二、数据分布式自动化测试

1、无传参

'flight2
'open
createobject("shell.application").MinimizeAll
Window("Program Manager").WinListView("SysListView32").Activate "Flight"
Dialog("Login").WinEdit("Agent Name:").Set "1234"
Dialog("Login").WinEdit("Agent Name:").Type  micTab
Dialog("Login").WinEdit("Password:").SetSecure "5b57c747ce571c6ef73416435b0dfb8bd1229724"
Dialog("Login").WinButton("OK").Click

'register
Dim i

For i=1 to 5
	Window("Flight Reservation").WinButton("Button").Click
	datatable.Import"c:\excel\date.xls"
	Window("Flight Reservation").ActiveX("MaskEdBox").Type datatable.GetSheet("register").GetParameter("date").ValueByRow(i)
	datatable.Import"c:\excel\from.xls"
	Window("Flight Reservation").WinComboBox("Fly From:").Select datatable.GetSheet("register").GetParameter("from").ValueByRow(i)
	datatable.Import"c:\excel\to.xls"
	Window("Flight Reservation").WinComboBox("Fly To:").Select datatable.GetSheet("register").GetParameter("to").ValueByRow(i)
	Window("Flight Reservation").WinButton("FLIGHT").Click
	Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
	datatable.Import"c:\excel\name.xls"
	Window("Flight Reservation").WinEdit("Name:").Set datatable.GetSheet("register").GetParameter("name").ValueByRow(i)
	datatable.Import"c:\excel\ticket.xls"
	Window("Flight Reservation").WinEdit("Tickets:").Set datatable.GetSheet("register").GetParameter("ticket").ValueByRow(i)
	Window("Flight Reservation").WinButton("Insert Order").Click

	Window("Flight Reservation").WinMenu("Menu").Select "File;Fax Order..."
	datatable.Import"c:\excel\fax.xls"
	Window("Flight Reservation").Dialog("Fax Order No. 59").ActiveX("MaskEdBox").Type datatable.GetSheet("register").GetParameter("fax").ValueByRow(i)
	Window("Flight Reservation").Window("Fax Order No. 228").RunAnalog "Track2"
	Window("Flight Reservation").Dialog("Fax Order No. 59").WinCheckBox("Send Signature with order").Set "ON"
	Window("Flight Reservation").Dialog("Fax Order No. 59").WinButton("Send").Click
	
Next

'exit
Window("Flight Reservation").Close

(1)订票和传真都写在了“register”中,用一个for循环执行5次

(2)由于每次导入都会覆盖上一次的结果,因此在每个需填的数据都都要导入一次。

(3)使用下述代码来获取数据表中对应列的第i行的数据

datatable.GetSheet("register").GetParameter("date").ValueByRow(i)

2、传参

Action结构如下:

脚本代码如下:

'Copy of 登录
createobject("shell.application").MinimizeAll
Window("Program Manager").WinListView("SysListView32").Activate "Flight"
Dialog("Login").WinEdit("Agent Name:").Set "ghtght"
Dialog("Login").WinEdit("Password:").SetSecure "5b5923afd6d0353bc5262278fd94cb5f0b215e20"
Dialog("Login").WinButton("OK").Click

'Copy of dingpiao
Dim i
For i=1 to 5
	Window("Flight Reservation").WinButton("Button").Click
        datatable.Import"c:\excel\date.xls"
	Window("Flight Reservation").ActiveX("MaskEdBox").Type DataTable.GetSheet("Copy of dingpiao").GetParameter("date").ValueByRow(i)
	datatable.Import"c:\excel\from.xls"
	Window("Flight Reservation").WinComboBox("Fly From:").Select DataTable.GetSheet("Copy of dingpiao").GetParameter("from").ValueByRow(i)
	datatable.Import"c:\excel\to.xls"
	Window("Flight Reservation").WinComboBox("Fly To:").Select DataTable.GetSheet("Copy of dingpiao").GetParameter("to").ValueByRow(i)
	Window("Flight Reservation").WinButton("FLIGHT").Click
	Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
	datatable.Import"c:\excel\name.xls"
	Window("Flight Reservation").WinEdit("Name:").Set DataTable.GetSheet("Copy of dingpiao").GetParameter("name").ValueByRow(i)
	datatable.Import"c:\excel\ticket.xls"
	Window("Flight Reservation").WinEdit("Tickets:").Set DataTable.GetSheet("Copy of dingpiao").GetParameter("ticket").ValueByRow(i)
	Window("Flight Reservation").WinButton("Insert Order").Click

	RunAction "Copy of Action1", oneIteration, i
Next

'Copy of Action1
datatable.Import"c:\excel\fax.xls"
Dim a
'print parameter("i")
a = parameter("i")

Window("Flight Reservation").WinMenu("Menu").Select "File;Fax Order..."
Window("Flight Reservation").Dialog("Fax Order No. 15").Drag 256,217
Window("Flight Reservation").Dialog("Fax Order No. 15").ActiveX("MaskEdBox").Type datatable.GetSheet("Copy of dingpiao").GetParameter("fax").ValueByRow(a)
Window("Flight Reservation").Window("Fax Order No. 85").RunAnalog "Track1"
Window("Flight Reservation").Dialog("Fax Order No. 258").WinCheckBox("Send Signature with order").Set "ON"
Window("Flight Reservation").Dialog("Fax Order No. 15").WinButton("Send").Click

'Copy 2 of Action1
Window("Flight Reservation").Close

(1)订票和传真是子父关系,导入的数据表都在订票表处

(2)设置循环变量i,并把i传递给传真页面以获取对应行的值

(3)需注意要在传真页面设置好参数,并使用 “parameter("i")” 获取参数值

猜你喜欢

转载自blog.csdn.net/qq_35756383/article/details/81346951
今日推荐