首页 > 解决方案 > 我可以在 Serenity-JAVA 测试自动化框架的 @DefaultUrl 中传递一个捕获字符串值(基本上是带有令牌的 url)的变量吗

问题描述

我正在使用基于 Serenity Java 的测试自动化框架和下面列出的依赖项。

    <properties>
    <java.version>1.8</java.version>
    <java.source.version>${java.version}</java.source.version>
    <java.target.version>${java.version}</java.target.version>
    <surefire.forkNumber>8</surefire.forkNumber>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <serenity.version>2.0.69</serenity.version> <!-- https://bintray.com/serenity/maven/serenity-core/ -->
    <serenity.maven.version>2.0.67</serenity.maven.version>
    <serenity.cucumber.version>1.9.45</serenity.cucumber.version> <!-- https://bintray.com/serenity/maven/serenity-cucumber/ -->
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.version>3.5.3</maven.version>
    <parallel.tests>4</parallel.tests>
    <browserstack.local.version>1.0.3</browserstack.local.version>
    <maven.failsafe-plugin.version>3.0.0-M3</maven.failsafe-plugin.version>
    <maven.surefire-plugin.version>3.0.0-M3</maven.surefire-plugin.version>
    <maven.compiler-plugin.version>3.8.0</maven.compiler-plugin.version>
    <cucumber-jvm-parallel.version>5.0.0</cucumber-jvm-parallel.version>

我想将一个 URL 即时传递给 @DefaultUrl,这并不简单。我的意思是说爬虫有一些限制,因此会在一定的时间间隔内生成一个令牌。所以它是 URL 后跟一个令牌有点东西,可以访问应用程序。

所以令牌不断变化。我创建了一个类,该类使用每次调用该方法的令牌捕获 url。实际问题就在那里。我想从这个方法传递值,它是一个 url。我正在寻找将其设为默认网址的选项。

当我尝试使用没有令牌的环境时,它工作正常,并且测试似乎根据 serenity.properties 文件运行。但是,一旦我尝试在基于令牌的 url 环境上运行测试,我就会看到 serenity.properties 被忽略。我试过这样的事情:

鉴于 stepdef 有

homePage.onDocsDashboard();

主页仪表板

@DefaultUrl("Here goes the link to Main Page accessible by public but not the actual application page on INT environment ")

public class HomePage extends PageObject {
private final AuthorisedUser authorisedUser = new AuthorisedUser();
Private String IntUrl = authorisedUser.IntEnvUrl;
public void onDocsDashboard() {
        open();
        getDriver().manage().window().maximize();
        getDriver().manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        getDriver().navigate().to(IntUrl);
        getDriver().getCurrentUrl();
    }
}https://stackoverflow.com/questions/ask#

标签: serenity-bddcucumber-serenity

解决方案


推荐阅读