如何随机化黄瓜的顺序示例步骤=

时间:2018-06-14 17:41:26

标签: selenium cucumber

如何随机化最快的方法/方式?:  场景大纲:作为Piet,我可以删除用户     鉴于用户以'Piet'身份登录     给定菜单项“用户管理”     当用户''被删除时     然后通知面板包含消息'Deze gebruiker is   succesvol verwijderd。'     通知面板中没有错误

随机化删除顺序

Examples: User accounts to delete
  | username      |
  | hans          |
  | piet          |
  | kees          |
  | jan           |

我希望Cucumber支持这样的事情:(但显然它没有,至少现在还没有)  场景大纲:作为Piet,我可以删除用户     鉴于用户以'PIET'身份登录     给定菜单项“用户管理”     当用户''被删除时     然后通知面板包含消息'Deze gebruiker is  verwijderd“。     通知中没有错误

随机化删除顺序

Examples: User accounts to delete
  | username [RANDOM] |
  | hans              |
  | piet              |
  | kees              |
  | jan               |

那么以随机顺序运行这些步骤的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

这是完全黑客的做法。但它确实有效。

将所有用户放在方案中。示例表包含倒计时。

Scenario Outline:
    When Users to be deleted "one,two,three,four,five"
    Then Delete random user <num>

    Examples:
    | num |
    |5|
    |4|
    |3|
    |2|
    |1|

Stepdefinition代码。这是在Cucumber 3.0.2中,如果在黄瓜2或以下,则相应地修改。

    private static List<String> delUserList = new ArrayList<>();
    private List<String> userList= new ArrayList<>();

    @When("Users to be deleted {string}")
    public void userDel(String users) {
        System.out.println("------------");
        System.out.println("Deleted users - "+delUserList);
        userList = new ArrayList<>(Arrays.asList(users.split(",")));
        userList.removeIf(delUserList::contains);
        System.out.println("Remaining users - "+userList);
    }

    @Then("Delete random user {int}")
    public void delRandom(int num) {
        Random rand = new Random();
        int ind = rand.nextInt(num);
        System.out.println("User to delete - "+userList.get(ind));
        delUserList.add(userList.get(ind));
    }