我正在使用Groovy + Geb + Spock + Gradle框架编写自动化测试脚本。我有一个名为" UserProfilePageSpec"检查用户配置文件页面的UI,现在我想多次运行它来检查多个用户。我在那里添加了随机性,以便每次规范将在列表中选择随机用户并导航到用户配置文件页面。
另外,我想检查每个用户类型的5个用户(这是主页中的过滤器)。所以我需要点击主页中的每个用户类型,然后多次运行规范。
有时候,当没有足够的时间来测试每种类型的多个用户时,我只需要测试一个用户,所以我想保留这个规范来测试一个用户本身,有没有人有一个好主意实现这个?谢谢!
以下是" UserProfilePageSpec"的基本结构:
class UserProfilePageSpec {
def setupSpec(){
//login
//select a random user
//navigate to user profile page
}
def "test1"(){..}
def "test2"(){..}
def "test3"(){..}
def "test4"(){..}
}
答案 0 :(得分:2)
这在Spock中是不可能的,有一些未解决的问题,例如: https://github.com/spockframework/spock/issues/407或https://github.com/spockframework/spock/issues/668
根据您的用例,您可以使用子类来模拟它。
abstract class UserProfilePageSpec {
def setupSpec(){
//login
//select a random user
//navigate to user profile page
}
abstract def getData()
def "test1"(){..}
def "test2"(){..}
def "test3"(){..}
def "test4"(){..}
}
class UserProfilePageVariation1Spec extends UserProfilePageSpec {
def getData() { [username: 'foo', password: 'bar'] }
}
只需将您的变体创建为子类。