我是 Selenium 和 TestNG 的新手,我无法按顺序执行脚本。 我必须对组、用户、位置、设备、配置文件<等实体执行CRUD操作/em>,角色,它们之间有依赖关系。
我为对每个实体执行的每个操作(使用注释)创建了一个单独的组,例如 addGroup、editGroup、deleteGroup对于上面的每个实体依此类推。 一些实体依赖于其他实体
添加组
@Test(dependsOnGroups={"loginGroup"},groups="addGroup")
public void AddGroup() {}
编辑组
editGroup依赖于addGroup操作,如下
@Test(dependsOnGroups = { "loginGroup","addGroup"}, groups = "editGroup")
public void editGroup() {}
删除群组
@Test(dependsOnGroups={"loginGroup","addGroup","deleteLocation"},groups="deleteGroup")
public void deleteGroup() {}
添加位置
AddLocation操作依赖于AddGroup。
@Test(dependsOnGroups = {"loginGroup", "addGroup" }, groups = "addLocation")
public void addLocation() {}
编辑位置
editLocation 依赖于 AddLocation
@Test(dependsOnGroups = { "loginGroup","addLocation"}, groups = "editLocation")
public void editLocation() {}
删除位置
deleteLocation 依赖于 addLocation 操作
@Test(dependsOnGroups={"loginGroup","addLocation"},groups="deleteLocation")
public void deleteLocation(String locationId) {}
添加角色
@Test(dependsOnGroups = { "loginGroup"}, groups = "addRole",dataProviderClass=AddNewRoleDataProvider.class)
public void addRole() { }
编辑角色
editRole 依赖于 addRole
@Test(dependsOnGroups = { "loginGroup","addRole"}, groups = "editRole")
public void editRole() {}
删除角色
deleteRole 依赖于 addLocation 操作
@Test(dependsOnGroups = { "loginGroup", "addRole", "deleteUser" }, groups = "deleteRole")
public void deleteRole() { }
添加用户
AddUser 操作依赖于 AddLocation、AddGroup、AddRole 操作。
@Test(dependsOnGroups = {"loginGroup", "addGroup", "addLocation","addRole"}, groups = "addUser")
public void AddUser() { }
编辑用户
editUser操作依赖于addUser操作
@Test(dependsOnGroups = { "loginGroup","addUser"}, groups = "editUser")
public void editUser() { }
删除用户
删除用户操作依赖于addUser操作
@Test(dependsOnGroups = { "loginGroup","addUser"}, groups = "deleteUser")
public void deleteUser(String userId) throws Exception {}
现在我想将此操作作为套件运行,以下是将此脚本作为套件运行的代码
@Test(dependsOnGroups={"addGroup","addLocation","addRole","addUser",
"editGroup","editLocation","editRole","editUser",
"deleteUser","deleteLocation","deleteRole","deleteGroup"})
public void startSuite() {}
当我运行我的套件时,它将在添加用户之前删除位置,从而终止 addUser 操作。
最佳答案
我认为你让这个场景有点过于复杂,在类中单独测试每个实体不是更容易吗?就像
@Test(dependsOnGroups = {"loginGroup", "groupCrud", "locationCrud","roleCrud"},
groups = "userCrud")
public TestUserCrudOperations {
@Test(priority = 0)
public void addUser() {}
@Test(priority = 1)
public void editUser() {}
@Test(priority = 2)
public void deteleUser() {}
//method with lower priority is executed first
}
通过将测试分离到这样的类中,您将获得更具可读性和可维护性的代码(并且您也将避免拥有太多具有困难依赖性的组)。
关于java - TestNG 和 Selenium : Perform CRUD operations on entities with depedencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25013177/