让我们考虑一个场景,我们必须运行"create“的性能测试,该测试将输入作为头/路径param "Auth token”,并输入数据,比如用户帐户名。因此,对于上面的场景,我们有两个特性文件,
要运行POST http://baseUrl/auth 1.一个特性(例如: generateAuth.feature)文件的性能测试,它将具有auth令牌2;第二个特性(createAccount.feature)文件,该文件以参数作为auth令牌,输入数据。
这是我的模拟课,
class <MyClass> extends Simulation {
before {
println("Simulation is about to start!")
}
val generateAuthTest = scenario("generateAuth").exec(karateFeature("classpath:path/generateAuth.feature"))
val createAccountTest = scenario("test").exec(karateFeature("classpath:path/createAccount.feature"))
setUp(
createAccountTest.inject(rampUsers(1) over (10 seconds))).maxDuration(1 minutes)
after {
println("Simulation is finished!")
}
}
这里,我可以从generateAuth.feature文件中读取auth,这是createAccount.feature文件的输入,这样就可以作为参数传递?请建议我在调用karateFeature方法时如何将参数传递给createAccount.feature。
让我在这里提出一个要求,
假设我们有一些针对特定数据的CRUD操作的特性文件。在这里,我如何编写功能场景,
现在,如果我对单个操作进行性能测试,我觉得有两种方法,
这里只想知道第二种测试方法,它是否可以在空手道上实现,如果是,请告诉我如何做?
总结-我认为它可以使用第三个特性文件(额外)用于个别用例,但我不想为每个案例制作一个额外的特性文件,这样我就可以避免维护工作,并且可以利用现有功能文件从功能测试到性能测试的可重用性。
发布于 2018-07-24 11:03:07
只需使用普通的空手道概念,如karate-config.js
您可以通过设置开关环境系统属性轻松地进行karate.env
。
例如:
mvn test -DargLine="-Dkarate.env=e2e"
编辑:在你编辑完你的问题后,很明显你有一个你想要测试的流程。请使用单一功能。我建议您将generateAuth
移到特性的Background
中。还请参阅callSingle()
上的文档以获得高级选项。
如果您期望有两个功能文件能够神奇地共享数据,如果您的测试结构正确,那么这是不可能的,也是不需要的。
如果您真的需要这样做,请创建一个Java单例并从每个特性访问它。不过,绝对不要推荐这个。
编辑:在空手道0.9.0开始,你可以如果有标记,则调用功能中的单个场景。
classpath:animals/cats/create.feature@sometagname
https://stackoverflow.com/questions/51504264
复制相似问题