先说工具:Testcomplete 8
为Windows、.NET、Java和Web应用程序提供特性全面的自动化测试环境。 具有系统化、自动化和结构化特性,支持.NET , Java , Visual C++, Visual Basic, Delphi, C++Builder 和web应用程序。
能够以关键字测试(Keyword tests)或者脚本(Script)测试的形式创建功能测试。同时,TC在对象识别的基础上,可以采用数据驱动的方式,根据脚本调用excel等案例把大量重复冗余的工作通过TC自动化完成。
软件为收费的。。。,所以相对学习和观摩的朋友应该较少。当然可以触类旁通用在其他的自动化测试工具上,这里主要是说VBScript的。当然我水平有限大家可以随便扔砖头。
A. 编写一个简单的脚本
Sub newscript ‘定义一个简单的执行过程 newscript Dim i ‘定义i For i = 0 To 10 log.Message(i) ‘输出循环11次的i值 Next End Sub |
B. 执行脚本
点击执行按钮或右键点击Run
C. 查结果
IX. 自动化脚本阅读和解析
A. 脚本1 脚本入口点Sub
假如Sub作为一个开始的执行过程是不能带参数。
Sub start '……… '……… '……… End Sub |
当过程执行到End Sub没调用其他的Function 或Sub就会自动结束。这相当于脚本过程的一个生命周期。
1. 这个过程可以使用其他函数和过程以外的定义变量和常量,包括USEUNIT的函数和过程以外的定义变量和常量。
Dim s s = 1 sub start log.Message(s) '显示1 end sub |
2. 这个过程可以调用本脚本和USEUNIT所有函数和过程。
s = 1 sub start log.Message(s) '显示1 test end sub
sub test b =2 log.Message(b) end sub |
3. 这个是一个过程所以不会产生任何返回值,但是支持调用本过程。
s = 1 start sub start log.Message(s) if s > 2 then exit sub end if s = 1 + s end sub |
4. 过程中遇到exit sub和脚本错误(非on error Resume Next)自动结束
脚本2 初始化测试数据(预期结果)
初始化测试数据1
Dim s
S = 3
这样定义在数据量较多的时候很不方便。
Testcomplete 使用了ODT.DATA的方式存储大量需要测试使用的数据.
先清除ODT.DATA.Group和对应使用的ODT.Classes
Sub DelGroups() Dim x,i,group x = ODT.Data.GroupCount '获取ODT在group数量 For i=0 To x-1 Set group = ODT.Data(i) ODT.Data.DeleteGroup(group.Name) '删除对应第一个group Next End Sub
Sub DelClass() If ODT.Classes.Count > 0 Then ODT.Classes.Clear '清空classes定义 End If End Sub |
定义ODT class 测试数据的类型
比如要使用Button属性Name、FullName、Text、Hotkeys、Size、pic
sub btn If ODT.Classes.Items("Button") Is Nothing Then Set testClass=ODT.Classes.Declare("Button") '创建Class Call testclass.AddProperty("Name") '增加定义 Call testClass.AddProperty("FullName") Call testClass.AddProperty("Text") Call testClass.AddProperty("Hotkeys") Call testClass.AddProperty("Size") Call testClass.AddProperty("pic") End If end sub |
再在没检测到一个Button的时候写入这些数据
sub btn If ODT.Classes.Items("Button") Is Nothing Then Set testClass=ODT.Classes.Declare("Button") '创建Class Call testclass.AddProperty("Name") '增加定义 Call testClass.AddProperty("FullName") Call testClass.AddProperty("Text") Call testClass.AddProperty("Hotkeys") Call testClass.AddProperty("Size") Call testClass.AddProperty("pic") End If Set MyGroup = ODT.Data.AddGroup("Button") '创建数据组 Call MyGroup.AddVarOfClassType("wimbutton","Button") '增加对应类型的数据 Set wb = odt.Data.Groups("Button").Variables("wimbutton").Value wb.name = "bt1" '赋值 wb.FullName = "bt2" wb.Text = "bt3" wb.Hotkeys = "b" wb.Size = 200 wb.pic = "c:\pic.png" end sub |
ODT.Data作为存储数据代替了数据库的存储功能同时也会消耗部分内存,大量ODT数据需要释放掉不需要的不让很影响测试效率,其实就是删除ODT的的节点。
定义窗体并且引用
1. 首先新建一个UserForms
右键UserForms增加一个Items,添加最简单的控件Button
2. 窗体控件方法
点击创建一个窗体方法
Sub Forms UserForms.UserForm1.ShowModal '显示窗体和show的区别是相对于堵塞机制
Sub UserForm1_cxButton1_OnClick(Sender) UserForms.UserForm1.Hide '关闭窗体 End Sub |
右键执行Forms过程可以得到你创建的窗体。
分布式测试
创建NetWorkSuite项目
在NetWorkSuit->Hosts增加
在新建的hosts1里面通过右键Edit填入分布式的测试机器信息
在NetWorkSuit->Jobs增加
在新建的Jobs1里面通过右键Edit填入分布式的测试机器测试启动脚本
Hosts:选择上面NetWorkSuit->Hosts Project
File Name:选择对应hosts机器存放的脚本文件路径
Remote App:选择远端Hosts的执行工具。 按照上述方式可以添加多台机器同时进行脚本的测试