如何随机化最快的方法/方式?: 场景大纲:作为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 |
那么以随机顺序运行这些步骤的最佳方法是什么?
答案 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));
}