当前位置: 首页 > 知识库问答 >
问题:

如何组织cucumberjs场景的登录过程?

彭洲
2023-03-14

我想用cucumber写一个烟雾测试。我对cucumber很陌生,不知道如何为复杂的过程编写场景。

我要检查的流程:

  1. 我是一个未签名的html" target="_blank">用户
  2. 我在浏览器中打开'/my-home'
  3. 它将重定向到'/login?继续=/my-home'
  4. 页面上会有登录表单
  5. 我输入我的用户名和密码,然后按“登录”按钮
  6. 如果登录,它将重定向到'/my-home'
  7. 我可以在页面上看到我的名字'FreeWind'

我不确定我需要创建多少个场景,一个用于所有场景,或者两个(一个用于登录页面跳转,另一个用于登录),或者更多?

如果我写一个,可能是:

Scenario: Login to my home
  Given I'm an unsigned user
    And I open '/my-home' in the browser
    And it will redirect to '/login?continue=/my-home'
    And there will be a login form on the page
   When I input my username and password
    And press 'login' button
   Then it will redirect to '/my-home'
    And I can see my name 'Freewind' on the page

如果我写两个,可能是:

Scenario: Login page redirection
  Given I'm an unsigned user
   When I open '/my-home' in the browser
   Then it will redirect to '/login?continue=/my-home'
    And there will be a login form on the page

Scenario: Login to my home
  Given I opened the login url '/login?continue=/my-home'
   When I input my username and password
    And press 'login' button
   Then it will redirect to '/my-home'
    And I can see my name 'Freewind' on the page

哪一个更有意义?还有更好的方法吗?

我发现,如果我打开了登录url“/登录?continue=/my home“不流利,有没有更好的表达方式?

共有1个答案

笪昌翰
2023-03-14

不要这样写你的场景。所有这些关于“如何”登录的详细信息都属于场景“下面”的代码(步骤定义和助手方法)。虽然一开始可能有点奇怪,但编写此功能的方法如下

Feature: Registered users can login

Background:
  Given I am registered

Scenario: I log in
  When I login
  I should be logged in

之后,您可以编写其他场景,如

Scenario: I log in with the wrong password

然后您可以编写有关未注册用户和注册的功能

在编写特性时,要像业务人员一样思考,而不是开发人员或测试人员。解释你想做什么以及为什么它很重要,省去“如何”完成事情。

 类似资料:
  • 目前,我创建了一个如下所示的特性文件(在这个示例中,我已经用...删除了数据):

  • 我正在尝试为meteor应用程序(cucumber testing)的用户登录编写一个功能文件。用户必须填写两个表单(主表单和pin表单)才能成功登录。 我的问题是定义场景,因为有两个表单具有用户的有效/无效输入选项。 我从这个开始,感觉很糟糕。那不是干的尝试。。。 功能:允许用户以应用程序用户的身份登录和注销我想登录和注销,以便证明我的身份并查看数据

  • 我必须使用Gatling/Scala编写一些测试。在我的具体情况下,我必须使用用户名和密码登录网站(此外还有密钥斗篷安全性)。有一个带有很多用户/密码行的CSV文件,我的目标是使用此CSV文件中的每个用户/密码登录。 问题是我不知道怎么做。我可以用用户名/密码和密钥斗篷的安全令牌登录,只需一个用户。到目前为止还可以,但还不够。以下是我到目前为止所做的。 第一类: 馈线类: 登录名: 如您所见,我在

  • 1. 创建一个市场活动 市场人员首先需要创建一个市场活动,通过访问【活动营销】,点击【+新建活动】进入新建市场活动-活动营销页面; 在新建市场活动-活动营销页面填写活动名称、开始时间、结束时间、地点、预计成本和收入等,保存进入活动概览可以开始准备用于活动推广并收集客户资料的内容; 2. 制作活动内容以对外介绍活动、收集客户留资 在活动下的【概览】页面,市场人员可以通过推广内容区域的【自定义】或【+

  • cucumber场景使用JUnit运行。 我有一个用例,需要根据Jira票据的状态跳过特定的Cumber场景。然后,我需要将该场景标记为在html报告中传递。 我可以使用PendingException()或AssumptionViolatedException()轻松跳过场景,两者都可以正常跳过场景执行并将步骤标记为跳过。但是场景本身将被标记为失败,我希望它被通过。 无论如何,我可以做到这一点?

  • 问题内容: 在Objective-C中,使用Sprite-Kit,我将在Objective-C中 成功 使用类似以下代码的内容来展示新场景 在尝试将我的简单游戏移植到Swift时,到目前为止,我已经完成了这项工作… 但是我不知道要写什么代码才能真正过渡到另一个场景。问题: 有人可以提供在Swift中使用SKTransition的示例吗? 假设您将使用Objective-C,通常是否会创建另一个“文