如何使用Serenity Cucumber运行所有feature文件并复用单个浏览器实例
Serenity BDD 单浏览器实例执行全量用例配置方法
你只需要修改配置和Runner类配置即可实现需求,操作步骤如下:
1. 修改核心配置文件
在你的项目的serenity.properties(或serenity.conf)文件中添加以下两个配置项:
# 关闭每个场景重启浏览器的默认逻辑 serenity.restart.browser.each.scenario = false # 设置浏览器驱动生命周期为整个测试套级别,全量用例复用同一个驱动实例 serenity.driver.lifecycle = SUITE
如果使用的是2.x及更早的Serenity BDD版本,额外添加以下配置:
serenity.session.strategy = singleton
2. 确认Runner类配置
你的Serenity启动Runner类不需要额外加特殊配置,参考示例写法即可,只要正确指定feature文件夹路径即可识别全部feature文件:
import io.cucumber.junit.CucumberOptions; import net.serenitybdd.cucumber.CucumberWithSerenity; import org.junit.runner.RunWith; @RunWith(CucumberWithSerenity.class) @CucumberOptions( features = "src/test/resources/features", // 替换为你自己的Feature文件夹相对路径 glue = "com.yourproject.stepdefinitions", // 替换为你自己的步骤定义类所在包路径 plugin = {"pretty"} ) public class AllFeaturesTestRunner { }
注意事项
- 不要在步骤定义、钩子方法中手动调用
driver.quit()或driver.close()方法,Serenity会在所有用例执行完成后自动关闭浏览器 - 如果不同场景之间需要清理登录状态等会话数据,手动编写清除Cookie、本地存储的逻辑即可,无需关闭浏览器
- 不要开启测试用例多线程执行配置,多线程场景下无法复用同一个浏览器实例
内容的提问来源于stack exchange,提问作者Nachiyar-09
相关产品推荐
相关产品推荐

