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

Selenium 如何将黄瓜示例步骤的顺序随机化=,selenium,cucumber,Selenium,Cucumber,我如何随机选择最快的方法/方式 场景大纲:作为一个Piet,我可以删除用户 假设用户以“Piet”身份登录 如果选择了菜单项“用户管理” 删除用户“”时 然后通知面板包含消息“Deze gebruiker是 成功的,成功的 通知面板不包含任何错误 随机删除顺序 我原以为Cucumber会支持这样的东西:(但显然不是,至少现在不是) 场景大纲:作为一个Piet,我可以删除用户 假设用户以“PIET”身份登录 如果选择了菜单项“用户管理” 删除用户“”时 然后通知面板包含消息“Deze gebrui

我如何随机选择最快的方法/方式 场景大纲:作为一个Piet,我可以删除用户 假设用户以“Piet”身份登录 如果选择了菜单项“用户管理” 删除用户“”时 然后通知面板包含消息“Deze gebruiker是 成功的,成功的 通知面板不包含任何错误

随机删除顺序 我原以为Cucumber会支持这样的东西:(但显然不是,至少现在不是) 场景大纲:作为一个Piet,我可以删除用户 假设用户以“PIET”身份登录 如果选择了菜单项“用户管理” 删除用户“”时 然后通知面板包含消息“Deze gebruiker是 维尔维德德。” 并且通知不包含任何错误

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

这是一种非常简单的方法。但它是有效的

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

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

    Examples:
    | num |
    |5|
    |4|
    |3|
    |2|
    |1|
场景大纲:
当用户被删除时“一、二、三、四、五”
然后删除随机用户
示例:
|num|
|5|
|4|
|3|
|2|
|1|

步骤定义代码。这在Cucumber 3.0.2中,如果在Cucumber 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));
    }
private static List delUserList=new ArrayList();
private List userList=new ArrayList();
@何时(“要删除的用户{string}”)
公共void userDel(字符串用户){
System.out.println(“-------------”);
System.out.println(“删除的用户-”+delUserList);
userList=newarraylist(Arrays.asList(users.split(“,”));
removeIf(delUserList::contains);
System.out.println(“剩余用户-”+用户列表);
}
@然后(“删除随机用户{int}”)
公共无效delRandom(int num){
Random rand=新的Random();
int ind=rand.nextInt(num);
System.out.println(“要删除的用户-”+userList.get(ind));
add(userList.get(ind));
}

这是一种彻底的黑客方式。但它是有效的

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

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

    Examples:
    | num |
    |5|
    |4|
    |3|
    |2|
    |1|
场景大纲:
当用户被删除时“一、二、三、四、五”
然后删除随机用户
示例:
|num|
|5|
|4|
|3|
|2|
|1|

步骤定义代码。这在Cucumber 3.0.2中,如果在Cucumber 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));
    }
private static List delUserList=new ArrayList();
private List userList=new ArrayList();
@何时(“要删除的用户{string}”)
公共void userDel(字符串用户){
System.out.println(“-------------”);
System.out.println(“删除的用户-”+delUserList);
userList=newarraylist(Arrays.asList(users.split(“,”));
removeIf(delUserList::contains);
System.out.println(“剩余用户-”+用户列表);
}
@然后(“删除随机用户{int}”)
公共无效delRandom(int num){
Random rand=新的Random();
int ind=rand.nextInt(num);
System.out.println(“要删除的用户-”+userList.get(ind));
add(userList.get(ind));
}