无法使用数据表黄瓜,

时间:2018-01-17 15:06:11

标签: java selenium cucumber cucumber-java cucumber-junit

我正在使用Cucumber Selenium和数据表作为我的登录场景。这是我的情景:

Scenario Outline:  User login

    Given the user is on Login Page
    And   the users enter "<username>" and "<password>" 
       
   Examples:
   | username| password|
   | User_1  | passw123|
   | User_2  | passw123|
第一个用户不应该t log out because I m测试已登录用户的限制。 例如: 1.第一个用户登录并留在应用程序中 预期结果:用户成功登录 2.第二个用户尝试登录 预期结果:由于限制

,用户无法登录

但是当使用第二个凭据时,登录页面未打开,页面刚刚刷新并显示第一个登录用户的主页(User_1,passw123)。我有断言错误:

Caused by: java.lang.AssertionError: (after 5000 ms)
Expected: "Login Page"
     but: was "Home Page"

如何处理? 谢谢!

2 个答案:

答案 0 :(得分:0)

第一次测试后你退出了吗?如果您打开浏览器,则需要在最后注销,以便返回登录页面。否则,您可能会从登录页面重定向到主页,因为会话处于活动状态。

答案 1 :(得分:0)

您绝对不应将场景大纲用于此类目的。

你能做的是:
创建一个测试并将其描述为:
Open login page with new browser And the users enter "User1" and "password1" Open login page with new browser And the users enter "User2" and "password2"

在步骤Open login page with new browser中,您应该创建新的webdriver实例,并将其设置为所有其他步骤的主要驱动程序。

但是从我的观点来看,使用Selenium测试这样的auth逻辑是错误的想法,因为你没有测试任何UI行为,所有你测试的都是服务器端逻辑。因此,使用Rest-assured并通过http请求测试该逻辑会很方便。