我可以在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#

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)