gpt4 book ai didi

maven - 测试NG。需要在所有测试之前运行特定方法,在所有测试之后运行特定测试

转载 作者:行者123 更新时间:2023-12-03 19:56:37 26 4
gpt4 key购买 nike

使用 Selenium + TestNG + Maven。

我想使用 OWASP ZAP 自动化测试漏洞。为此,我需要在所有测试之前启动 ZAProxyScanner - 在所有测试之前执行方法。

public void initZap(){
zapScanner = new ZAProxyScanner(ZAP_PROXYHOST,ZAP_PROXYPORT,ZAP_APIKEY);
zapScanner.clear(); //Start a new session
zapSpider = (Spider)zapScanner;
}

当所有功能测试都执行完毕时 - 运行测试以搜索漏洞
@Test
public void scanning() throws ClientApiException{
spiderWithZap();
setAlertAndAttackStrength();
zapScanner.setEnablePassiveScan(true);
scanWithZap();
}

方法和测试位于一个类中,例如 public class TestSecurity
这是我的 testng.xml 示例,其中包含包含功能测试的包
<suite name="Chrome" thread-count="1" parallel="tests" configfailurepolicy="continue">
<test name="chrome">
<parameter name="browser" value="chrome"/>
<packages>
<package name="tests.suiteLogIn"></package>
<package name="tests.suiteSettings"></package>
<package name="tests.suiteSearch"></package>
</packages>
</test>

更新。发布带有 AfterTest 的修改后的代码。
我只使用 Before/AfterMethod 注释
    @BeforeMethod(alwaysRun=true)
@Parameters({"browser", "environment"})
public void setUp(@Optional ("firefox") String browser, @Optional ("local") String environment, Method method) throws IOException {
System.out.println("Test name: " + method.getName());
WebDriver driver = getMyDriver(browser, environment);
System.setProperty(ESCAPE_PROPERTY, "false");
}

@AfterMethod(alwaysRun=true)
@Parameters("browser")
public void tearDown(@Optional ("firefox") String browser){
DriverMaster.stopDriver();
}

@BeforeSuite
@Parameters("browser")
public void startZap(@Optional ("firefox") String browser){
if(browser.equals("firefox")){
sec.initZap();
}
}

@AfterSuite
@Parameters("browser")
public void scanZap(@Optional ("firefox") String browser) throws ClientApiException{
if(browser.equals("firefox")){
LoginPage lp = new LoginPage(getDriverInstance()).load();
lp.login("name", "pass");
sec.scanning();
}
}

最佳答案

你基本上有两个选择:

  • 使用 @BeforeSuite 和 @AfterSuite 并将其包含在文件中以运行或使您的所有类扩展它
  • 使用 ITestListenerISuiteListener并将设置和拆卸代码放在它们之前和之后的方法中。

  • 对于听众,我可以看到的一个优势是,如果您想根据一些测试结果进行有条件的拆卸(扫描),您也可以控制它。

    关于maven - 测试NG。需要在所有测试之前运行特定方法,在所有测试之后运行特定测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26377927/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com