【问题标题】:How to implement code for Dev and Staging in cucumber framework如何在黄瓜框架中实现 Dev 和 Staging 的代码
【发布时间】:2021-01-05 15:03:37
【问题描述】:
我正在工作开发和暂存环境中进行测试。 Dev 和 Staging 中的数据是不同的,而且我在测试 Staging 时不必在后端验证 DB。如何在我的框架中应用具有不同条件的代码?我试图使用 if 条件
例如 driver.getCurentURL 如果 URL == Dev --> 这样做,否则 --> 这样做。
但由于某种原因,if 语句在我的情况下不起作用。
【问题讨论】:
标签:
java
selenium
cucumber
【解决方案1】:
在测试时使用多个/不同的环境是常见的方面。为了支持不同的环境,您需要在实现测试用例和/或步骤时遵循一些标准做法。
- 不要对测试数据进行硬编码,而是将其移动到属性中
- 在执行时提供对加载环境特定资源和测试数据的支持
- 关于步骤的变化,步骤实现不同,然后可以将它们移动到单独的包中,并且应该在运行时从适当的包中加载步骤。如果有细微差别,您可以在代码中添加条件。
例如:
public void doCheckOut(){
//fill Credit Card Details
//credit card details will be provided in properties and that will be loaded for environment by resource manager
sendKeys(getBundle().getString("cc.number"),"input.ccnumber.loc");
...
if(getBundle().getString("env.name").equalsIgnoreCase("dev"){
//only run for dev env
click_checkOutBtn();
}
}
您可以将qaf-cucumber 用于resource management 功能。
如果您想跳过特定环境的整个步骤,AFAIK
使用黄瓜跑步者时,您不能这样做。但是,当使用 qaf 和 cucumber runner 时,如果您使用 qaf step implementation 创建了步骤(或使用 TestNG 代替 cucumber),您可以使用 step listener 和 step meta-data 跳过特定环境的整个步骤。