任何自动化项目中的常见断言

Common asserts in any automation project

任何人都可以简要解释一下在任何自动化项目中要考虑的常见断言是什么。它可能是 in-house 还是 public 网络应用程序。例如,目前我正在使用 selenium (java) 来自动化电子商务 Web 应用程序。因为这是我的第一个自动化网站,所以我 运行 没有想法可以验证一些事情,我知道下面提到的很少:

1.Verify每页标题

2.Verify 按钮、文本、link、图像、自定义文本等

除了这些还有什么我可以验证的吗?请随时纠正我的问题,如果您从事过各种自动化项目,您在哪些领域添加了断言来验证或验证网页上的某些内容。

基本上,您通过自动化与应用程序功能相关的 Test Cases 来减少回归周期的执行时间。因此,首先使用 ECP, BVA 等测试设计技术开发测试用例

每个测试用例必须有一个称为预期结果或功能的断言(否则它不会被称为测试用例)。

这个断言可以是任何形式,

  1. 输入有效凭据后是否登录成功
  2. 输入错误的凭据等后显示错误消息。

Selenium 帮助我们自动化 Web 交互(导航、点击、输入文本等)并且不为您执行任何断言。

JUnit, TestNG(在 Java 中)和 Assertions class 等框架可以使用断言。 python & Java (http://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html)

中的 assert 关键字等编程语言提供 built-in 支持

因此,无论您在问题中提到什么,例如常见断言(验证每个页面标题等),这些都只是网络交互。他们不决定测试是否为 PASS or FAIL由您来定义测试是否为 PASS/FAIL。


比如有一个测试用例登录成功有关。

在这里,您可以自动化 Web 交互,例如导航到登录页面、输入凭据、单击提交按钮。

然后为了验证您是否成功登录,您在正常情况下在登录用户的主页(如welcome user)中查找网页元素。在 Automation 中,您尝试使用 webelement 查找文本 welcome user。然后你使用框架提供的断言来断言网页中是否存在预期的消息,如

Assertions.assertEqual(expected_message, actual_message); // just an example.

如果expected_message和actual_message相同,则该方法不会抛出任何异常,这会导致框架将测试用例标记为PASS

如果 expected_message 和 actual_message 不相同,则 AssertEqual 方法会引发 AssertionError,这会导致框架将测试用例标记为失败。