当前位置:文档之家› 如何选择自动化测试框架

如何选择自动化测试框架

Michael Kelly在《Choosing a test automation framework》一文中提到测试自动化框架是一组假设、概念和惯例的集合,用于支持自动化测试。

(A test automation framework is a set of assumptions, concepts, and practices that provide support for automated software testing.)Michael Kelly把自动化测试框架划分为5大类:(1)模块化框架(test script modularity)。

(2)函数库结构框架(test library architecture)。

(3)关键字驱动测试框架(keyword-driven/table-driven testing)。

(4)数据驱动测试框架(data-driven testing)。

(5)混合型框架(hybrid test automation)。

模块化框架(test script modularity)首先编写底层的三级脚本,例如:Sub MainWindow Set Context, "Caption=Calculator", ""'5PushButton Click, "ObjectIndex=10"'+PushButton Click, "ObjectIndex=20"'6PushButton Click, "ObjectIndex=14"'=PushButton Click, "ObjectIndex=21"'11Result = LabelUP (CompareProperties, "Text=11.", "UP=Object Properties")End SubSub MainWindow Set Context, "Caption=Calculator", ""'20PushButton Click, "ObjectIndex=11"PushButton Click, "ObjectIndex=8"'-PushButton Click, "ObjectIndex=19"'10PushButton Click, "ObjectIndex=7"PushButton Click, "ObjectIndex=8"'=PushButton Click, "ObjectIndex=21"'10Result = LabelUP (CompareProperties, "Text=10.", "UP=Object Properties")End Sub底层脚本可以作为测试脚本开发任务,分模块下发给每个测试工程师负责开发。

然后用一个二级脚本来组织和整合这几个底层的脚本,例如下面是计算器的标准视图下组合底层测试脚本的例子:'Test Script Modularity Framework'Script for Standard ViewSub Main'Test Add FunctionalityCallScript "Test Script Mod Framework - Add"'Test Subtract FunctionalityCallScript "Test Script Mod Framework - Substract"'Test Divide FunctionalityCallScript "Test Script Mod Framework - Divide"'Test Multiply FunctionalityCallScript "Test Script Mod Framework - Multiply"End Sub最后,最顶层的测试脚本(一级脚本)再去把二级脚本组织和整合在一起执行,例如下面的脚本组合了计算器的标准视图和科学视图的测试脚本:'Test Script Modularity Framework'Top level script - represents test caseSub Main'Test the Standard ViewCallScript "Test Script Mod Framework - Standard"'Test the Scientific ViewCallScript "Test Script Mod Framework - Scientific"End Sub库结构框架(test library architecture)把测试脚本做成函数,通过函数之间互相调用来组织测试用例。

例如下面的一个函数实现了计算器标准视图的测试:'Header File'Test Library Architecture Framework"Functions LibraryDeclare Sub StandardViewFunction BasicLib "Functions Library" (OperandOne As Integer, _'Library Source File'Test Library Architecture Framework'Functions LibrarySub StandardViewFunction (OperandOne As Integer, _OperandTwo As Interger, _Operation As String)'Click on first operandSelect Case OperandOneCase 0PushButton Click, "ObjectIndex=8"Case 1PushButton Click, "ObjectIndex=7"Case 2PushButton Click, "ObjectIndex=11"Case 3PushButton Click, "ObjectIndex=15"Case 4PushButton Click, "ObjectIndex=6"Case 5PushButton Click, "ObjectIndex=10"Case 6PushButton Click, "ObjectIndex=14"Case 7PushButton Click, "ObjectIndex=5"Case 8PushButton Click, "ObjectIndex=9"Case 9PushButton Click, "ObjectIndex=13"End Select'Click on second operandSelect Case OperandOneCase "+"PushButton Click, "ObjectIndex=8"Case "-"PushButton Click, "ObjectIndex=7"Case "*"PushButton Click, "ObjectIndex=11"Case "/"PushButton Click, "ObjectIndex=15"End Select'Click on third operandSelect Case OperandOneCase 0PushButton Click, "ObjectIndex=8"Case 1PushButton Click, "ObjectIndex=7"Case 2PushButton Click, "ObjectIndex=11"Case 3PushButton Click, "ObjectIndex=15"Case 4PushButton Click, "ObjectIndex=6"Case 5PushButton Click, "ObjectIndex=10"Case 6PushButton Click, "ObjectIndex=14"Case 7PushButton Click, "ObjectIndex=5"Case 8PushButton Click, "ObjectIndex=9"Case 9PushButton Click, "ObjectIndex=13"End Select'=PushButton Click, "ObjectIndex=21"End Sub然后再用另外一个脚本来调用上面的函数,通过传入不同的参数来指定测试不同的内容:'Test Library Architecture Framework'Test Case script'$Include "Functions Library.sbh"Sub Main'Test the Standard ViewWindow Set Context, "Caption=Calculator", ""'Test Add FunctionaltyStandardViewFunction 3,4,"+"Result = LabelVP (CompareProperties, "Text=7.", "VP=Add")'Test Subtract FunctionaltyStandardViewFunction 3,2,"-"Result = LabelVP (CompareProperties, "Text=1.", "VP=Sub")'Test Multiply FunctionaltyStandardViewFunction 4,2,"*"Result = LabelVP (CompareProperties, "Text=8.", "VP=Mult")'Test Divide FunctionaltyStandardViewFunction 10,5,"/"Result = LabelVP (CompareProperties, "Text=2.", "VP=Div")End Sub关键字驱动框架(keyword-driven/table-driven testing)首先定义关键字表格,关键字表格一般存储在测试数据库、Excel或文件中。

相关主题