1、打开Squish IDE
2、创建TestSuit
File-New TestSuit,输出TestSuit Name,选择路路径,点击Next按钮,ToolKit选择Qt,Scripting Language选择Python,选择AUT(Application Under Test),点击Fish完成。
3、创建测试脚本类型说明
在Squish GUI测试工具中,有两种主要的测试类型:Script Test Case(脚本测试用例)和BDD Test Case(行为驱动测试用例)。下面对这两种测试类型进行详细介绍:
Script Test Case(脚本测试用例):
特点:
脚本编写: Script Test Case 主要通过编写测试脚本来实现测试。测试脚本通常使用Squish提供的脚本语言,如JavaScript、Python等。
灵活性: 提供了很高的灵活性,允许测试人员编写自定义的测试逻辑和断言。
功能全面: 可以涵盖各种测试场景,包括UI元素的交互、数据验证、应用程序逻辑等。
以下为python代码示例:
# 导入Squish的API
from squish import *
def test_case():
# 启动应用程序
startApplication("MyApp")
# 执行一些操作
# 验证点1:检查按钮是否存在
test.verify(object.exists(":button_OK"), "OK按钮存在验证")
# 验证点2:比较文本值
expected_text = "Expected Text"
actual_text = object.text
test.compare(actual_text, expected_text, "文本比较验证")
# 执行其他操作
# 关闭应用程序
closeApplication("MyApp")
#调用测试函数
test_case()
BDD Test Case(行为驱动测试用例):
特点:
自然语言描述: BDD Test Case 使用行为驱动开发(BDD)的方法,测试用例通常使用自然语言来描述应用程序的行为。
易读性: 由于使用了自然语言描述,BDD测试用例对于非技术人员更易读懂,也方便与业务团队进行沟通。
集成Gherkin语法: Gherkin语法(如Given-When-Then)通常用于BDD测试,描述了场景的前提、事件和预期结果。
说明:详细示例见第4章节创建的BDD Test Case
其它说明:
在Squish中,BDD测试通常使用Cucumber-Gherkin语法编写,并集成了Squish的脚本功能。通过Gherkin语法,可以将测试场景的业务逻辑更直观地表达出来。
BDD测试用例可以由非技术团队成员(如业务分析师、产品经理等)编写和理解,这有助于促进开发团队和业务团队之间的沟通。
在实际项目中,可以根据测试需求选择使用Script Test Case、BDD Test Case,或两者结合,以更好地满足测试场景和团队的需要。
4、创建BDD Test Case(行为驱动测试用例)
(1)创建新的Squish BDD Test Case:
在 “Test Suites” 视图中,右键点击你的测试套件(Test Suite),选择 “New Test Case”。
在 “Test Case Type” 下拉菜单中选择 “BDD Test Case”。
(2)编辑BDD Test Case:
在新创建的BDD Test Case 文件中,你将看到一个基本的 Gherkin 语法模板。
编辑 Gherkin 语法的 Scenario,例如:
Feature:验证电磁塑肌仪可以正确启动按摩
Scenario: 启动按摩
Given 启动程序
When 用户进入工作界面
And 用户选择身体部位
And 用户选择美体紧致模式
And 用户选择按摩时间为1分钟
And 用户点击启动
And 用户选择按摩强度,并等待2分钟
Then 按摩成功结束
(3)关联BDD Test Case 脚本,并补充steps:
在 BDD Test Case 中,你可以添加 “Tags” 来关联测试脚本。例如,在 Scenario 下方添加 @script,或者在Step中添加具体步骤,或者选择对应脚本右键录制step,如下图为录制脚本选项。
新增steps内容如下:
(4)在步骤中,添加验证点
录制用例时在需要添加验证点的地方,点击“Verify”可以添加以下属性的校验,在Squish IDE中使用工具Pick元素属性(记得在菜单栏中打开:window-show view properties,可以查看属性)
录制用例时添加验证点校验
@When("验证按键存在")
def step(context):
test.compare(str(waitForObjectExists(names.o_img_btn_hips_Image).id), "_img_btn_hips")
也可以手动添加断言,设置期望值来实现,并根据需要添加失败时的处理,可以使用 try 和 catch 来处理断言失败的情况,以便在测试报告中能够更详细地标记失败的步骤。
至此,一个完成的测试用例完成。