首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在测试开始之前对几个特性和场景执行一次方法

在测试开始之前对几个特性和场景执行一次方法
EN

Stack Overflow用户
提问于 2018-04-11 05:59:22
回答 2查看 143关注 0票数 0

在我们的web应用程序中,登录某个页面需要很长时间。我们的特性和场景集是从该特定页面编写的。我们在那一页之前没有任何证明。只需10分钟就能到达那一页。

在我进一步解释之前。这是在Cucumber,我们正在使用Selenium与Java。

因此,应该执行登录操作,并且webdriver会话应该保持不变,然后场景验证就开始了。下面的特性包含以下场景。每个后续场景都依赖于前一个场景。也就是说,这些场景需要按顺序执行。

第一个特性应按顺序执行方案。然后,第二个特性应该按顺序执行场景。在此期间,我不希望为第二个场景创建一个新的会话。这些都是顺序依赖的。

我如何实现这一点?

代码语言:javascript
运行
复制
Feature: Add a product to the quote

    So that the quotation can be built on the added product

    Scenario: Add a Hub
        Given User A has logged in
        Then Add button is available
        Then Add Hub
        Then Enter correct Address details
        Then select correct bandwidth
        And Save to Quote

    Scenario: Add a Spoke
        Given User A has logged in
        Then Add button is available
        Then Add Spoke
        Then Enter correct Address details
        Then select correct bandwidth
        And Save to Quote


Feature: Give discount to the quote for Hub

    So that the quotation can be sent to the customer

    Scenario: Give 10% discount 
        Given Hub has already been added
        Then Go to the Quote Tab
        Then Enter the discount
        Then Save the Quote
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-11 06:20:12

顺序运行的特性-两种方法这样做。首先,取决于黄瓜按字母顺序运行特性的事实。因此,请相应地命名它们。但是,这种方法很容易被一个新的特性文件名打破,该文件名位于您之前创建的特性文件名之间。其次,在runner文件中的cucumberoptions特性值(如features = "second.feature,first.feature" )中指定运行顺序。这将首先运行second.feature。有关详细信息,请参阅

使驱动程序在特性文件中保持活力,--使用SharedWebDriver的概念,其中包含一个静态的WebDriver,以及一个关闭驱动程序的关闭钩子。虽然您可能需要添加适当的前后挂钩,以清理cookies等。

票数 0
EN

Stack Overflow用户

发布于 2018-04-11 10:11:26

您应该修复您的web应用程序,这样登录就不会花费很长时间,而不是试图在场景之间保留会话,从而使Cukes完全不可靠。有时,你的测试会给你反馈,这些反馈应该付诸行动,而不是工作;)

由于登录是一件完全微不足道的事情,99.999%的web应用程序能够快速有效地完成,我发现很难相信您的应用程序是如此特殊,以至于您无法做到这一点。如果您不能,那么也许您应该创建一个新的问题,解释为什么您的登录速度这么慢,并找到一些解决方案

在场景之间共享会话意味着共享会话的Cukes不能在不使方案不可靠的情况下进行任何更改任何数据的操作。这意味着任何导致POST而不是GET的交互都不应该被允许。因此,没有填写表格、提交表格等。

当然,你可以解决这个问题,但它会产生严重的问题,只会在相当长一段时间后才会出现。然后,当场景开始失败时,您需要10倍的时间才能找到它们失败的原因,因为您必须了解整个连接场景链。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49767557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档