Bdd 我想为登录功能编写脚本。我已经为以下功能文件编写了5种类型的用户

Bdd 我想为登录功能编写脚本。我已经为以下功能文件编写了5种类型的用户,bdd,Bdd,查询:我想用不同的用户登录,因为我正在参数化用户类型,并将验证相应的元素w.r.t访问权限 现在在步骤文件中假设:我已经写了 @Then ("^User logged in with \"([^\"]*)\"$) Public void User_logged_in_with_Usertype() { If (Usertype= Admin){ ... 所以在上面的代码中,我将如何获得admin或任何其他用户的值(我们可以从功能文件中获得相同的值吗,或者我需要为每个用户分别编写

查询:我想用不同的用户登录,因为我正在参数化用户类型,并将验证相应的元素w.r.t访问权限

现在在步骤文件中假设:我已经写了

@Then ("^User logged in with \"([^\"]*)\"$)
Public void User_logged_in_with_Usertype() {
    If (Usertype= Admin){
    ...
所以在上面的代码中,我将如何获得admin或任何其他用户的值(我们可以从功能文件中获得相同的值吗,或者我需要为每个用户分别编写代码)

功能:作为一个用户,我想与不同的用户一起登录FMJ重新设计应用程序

故事:用户正在登录FMJ应用程序

场景概述:用户使用管理员用户凭据登录

Given Navigating BU to "<Browser>"
When User clicks on Location
And ForevermarkJewellerWebsite element should be present on login page 
Then User logged in with "<Usertype>"
And User will check visibility of "<Element>"
Then User Logout Successfully

Examples:

|Browser  | UserType    | Element |
|Chrome   |  Admin      |         |
|Chrome   |  Market     |         |
|Chrome   |  Jeweller   |         |
|Chrome   |  Store      |         |
给定导航到“”
当用户单击位置时
并且ForevermarkJewellerWebsite元素应该出现在登录页面上
然后用户使用“”登录
并且用户将检查“”的可见性
然后用户成功注销
示例:
|浏览器|用户类型|元素|
|铬|管理||
|铬|市场||
|铬|珠宝商||
|铬|商店||

获取Usertype值的方法是将其作为方法中的参数

您的代码如下所示:

@Then ("^User logged in with \"([^\"]*)\"$)
Public void User_logged_in_with_Usertype() {
    If (Usertype= Admin){
        ...
@Then("^User logged in with (.*)$")
public void user_logged_in_with(String userType) throws Throwable {
    if (userType.equals("Admin")) {
        // implement our behaviour here
    }
}
我重写了你的场景提纲,最后得到了这个版本

  Scenario Outline: User is logged in with Admin user credentials

    Given Navigating BU to <Browser>
    When User clicks on Location
    And ForevermarkJewellerWebsite element should be present on login page
    Then User logged in with <UserType>
    And User will check visibility of <Element>
    Then User Logout Successfully

    Examples:

      | Browser | UserType | Element |
      | Chrome  | Admin    |         |
      | Chrome  | Market   |         |
      | Chrome  | Jeweller |         |
      | Chrome  | Store    |         |
这里有一些区别需要注意:

  • 我删除了示例中参数周围的引号
  • 我将UsertType的值作为参数添加到方法
    user\u logged\u in\u中
这些更改简化了所需的正则表达式,并允许您为不同的用户类型实现不同的行为

对于您拥有的用户类型,我可能会实现四个不同的步骤。这将给我更简单的步骤,我可以避免这种情况。价格将是四种方法

如果我这样做,那么最终的实现将如下所示:

@Then("^User logged in with Admin$")
public void user_logged_in_with_Admin() throws Throwable {
    // implement our behaviour here
}

这进一步简化了正则表达式并消除了捕获组的需要。

Hi,但现在我收到了Usertype步骤的错误消息,如下所示:算术不匹配:步骤定义'com.digital.app.fmj.mmd.LoginFMJ.Logged_in_as_Usertype_in_fmj()文件中的:/D:/AjayBackUp%20D%20Drive/Java/Cucumber_Basics/FMJ Digital App Project/bin/,模式为[^以(.*)登录到FMJ$]中,声明为0个参数。但是,小黄瓜步骤有1个参数[Admin]。步骤:并在FMJThanks中以管理员身份登录。我的查询已解决。谢谢你的帮助。