登录时的Specflow测试

时间:2015-12-14 09:57:41

标签: asp.net selenium forms-authentication specflow

我有一个Specflow / Gherkin测试来测试Asp.net应用程序,该应用程序涉及使用Selenium(和FireFox)登录执行操作。在我的控制器操作之上,我有[Authorize]令牌,并且该站点在手动测试时执行。我的登录使用表单身份验证 我的测试如下:

  1. 导航至“登录页面”
  2. 提供用户和密码
  3. 点击登录
  4. 导航至“创建产品”页面(必须已登录)
  5. 输入产品明细
  6. 保存按钮
  7. 检查项目在数据库中
  8. 看起来正在发生的事情是步骤1-3很好。但是当我执行第4步时,它会再次重定向到登录页面。所以第5步失败了,因为这不是预期的页面。 如果我从步骤3开始并登录重定向,则可以正常工作,例如:

    1. 导航至“创建产品”页面
    2. 提供用户和密码
    3. 点击登录
    4. 输入产品明细
    5. 保存按钮
    6. 检查项目在数据库中
    7. 我是否需要向Selenium添加一些特定内容以保存会话/登录令牌?

2 个答案:

答案 0 :(得分:0)

当我们使用Specflow,Cucumber或任何其他工具编写BDD测试时,我们需要将注意力集中在最终用户完成方案所需的操作上,换句话说:&# 34;作为用户"透视。

所以在你的场景中,作为用户,如果他需要导航到loginPage,登录然后导航到createProductPage并再次登录,那就这样吧!如果这是真的,请编写将再次登录的步骤。 如果没有,另一方面,如果用户需要登录一次,您不需要存储会话或其他任何内容,我认为在这种情况下您的应用程序中存在错误。

PS:如果这不起作用,您可以使用身份验证令牌存储浏览器的配置文件并使用它,因为当浏览器实例化时,它会获得干净的浏览器配置文件。

答案 1 :(得分:0)

好的,所以发现步骤3和4之间的过渡发生得太快了。所以,一旦我登录,我应该验证页面标题例如(当它重定向回主页)然后继续创建。第4步发生得太快,无法保存cookie /会话。