【问题标题】:What is an efficient way to write automated end to end user scenarios?编写自动化端到端用户场景的有效方法是什么?
【发布时间】:2012-06-03 18:55:51
【问题描述】:

在自动化用户场景时,我们通常会涵盖端到端的用户流程。 单元测试建议每个测试方法应该是独立的,并且只测试一件事。但是在系统验收测试中情况有所不同,因为我们必须涵盖通过应用程序的用户流程。

考虑一个电子商务应用程序,其用户旅程通常遵循以下步骤:

1 - 访问主页
2 - 搜索产品
3 - 选择产品
4 - 将产品添加到购物车
5 - 点击结帐
6 - 登录
7 - 输入付款详情
br>8 - 提交订单
9 - 等待确认

现在,在我们完成用户旅程时,这些步骤中的每一个都需要进行验证。因此,测试方法存在依赖性,例如第 3 步取决于第 2 步,它打破了单元测试实践。此外,如果我们将所有步骤都放在一种测试方法中,那么如果测试失败,就不容易检测到哪里出了问题。如果我们想隔离每个测试方法,使它们彼此独立,我们必须一遍又一遍地重复初始步骤。

我过去所做的是使用 TestNG 来提供对以前测试方法的这种依赖。我想知道如何在您的测试中处理用户旅程。

您如何处理测试中的用户旅程?

【问题讨论】:

    标签: browser-automation scenarios


    【解决方案1】:

    Selenium 对此有好处。它有一个 Firefox 插件,允许您“记录”您在浏览器中执行的端到端测试,以后可以回放。您还可以修改/手动编码测试。还支持修改和运行各种语言的测试(例如,我们使用 C#),因此您可以将各种逻辑和条件编码到测试流程中。

    看看你的测试步骤,我认为它应该是一个基本的实现(理论上——实际上你可能需要一些调整来确保每次运行的 HTML 元素选择器都是正确的)。

    1. 打开网址
    2. 在文本框中输入文本并单击按钮
    3. 点击链接
    4. 点击按钮
    5. 点击按钮
    6. 在两个文本框中输入文本并单击一个按钮
    7. 在各种文本框中输入文本
    8. 点击按钮
    9. (代码集成,检查电子邮件?)

    【讨论】:

    • 谢谢。我知道硒,但我的问题是你如何编写测试方法?你用一种方法编写所有步骤吗?还是您将每个验证都写在单独的测试方法中?
    • @AmirGhahrai 一开始就在一起。但是我们可以将单个测试“复制并粘贴”到其他上下文,添加条件逻辑等(如果测试编写正确的话)。
    • 使用功能分解。在 Java + WebDriver 中,使用一个测试类来表示一个测试套件,其中包含每个旅程的多个 @Test 方法,并为每个测试步骤操作创建一个具有可重用方法的 PageObject,例如点击登录、点击购物车等
    【解决方案2】:

    Chromium Browser Automation,也是很好的解决方案。您还可以在 Chromium Browser Automation 网站上查看文档和教程:http://chrome-automation.com/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多