Codeception。如何在验收测试中使用多个网址?

问题描述 投票:2回答:2

对不起,我的英语不好。我只是开始使用代码。在一个验收测试(网站(url:example.com)和管理员界面(url:edit-example.com))中需要使用两个网址。但我不知道如何实现这一点。我试着这样做:

acceptance.suite.yml

modules:
    enabled:
        - WebDriver:
            url: example.com

testCept.php

$website = example.com
$adm_int = edit-example.com

$I = new AcceptanceTester($scenario);
// Go to website and do some actions
$I->amOnPage($website);
// some code

// Then go to administrator interface and do some actions
$I->amOnPage($adm_int);
//some code

// Then I go again to website and look that changes confirmed
$I->amOnPage($website);
// some code

但在这种情况下,网站的url与url连接,在配置文件acceptance.suite.yml中指定。测试转到url example.com/example.com,如果是管理员界面,请转到example.com/edit-example.com。

问题出在url中,在config文件的acceptance.suite.yml中指定。如果我从这个配置文件中删除url - codeception返回异常:

[Codeception\Exception\ModuleConfigException]                     
  WebDriver module is not configured!                               

  Options: browser, url are required                                
  Please, update the configuration and set all the required fields  



Exception trace:
 () at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Module.php:89
 Codeception\Module->validateConfig() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Module.php:65
 Codeception\Module->_setConfig() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Module.php:58
 Codeception\Module->__construct() at n/a:n/a
 ReflectionClass->newInstanceArgs() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Lib\Di.php:75
 Codeception\Lib\Di->instantiate() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Lib\ModuleContainer.php:109
 Codeception\Lib\ModuleContainer->instantiate() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Lib\ModuleContainer.php:62
 Codeception\Lib\ModuleContainer->create() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\SuiteManager.php:71
 Codeception\SuiteManager->__construct() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Codecept.php:200
 Codeception\Codecept->runSuite() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Codecept.php:172
 Codeception\Codecept->run() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\src\Codeception\Command\Run.php:184
 Codeception\Command\Run->execute() at PhpstormProjects\MyProject\general\data\lib\vendor\symfony\console\Symfony\Component\Console\Command\Command.php:257
 Symfony\Component\Console\Command\Command->run() at PhpstormProjects\MyProject\general\data\lib\vendor\symfony\console\Symfony\Component\Console\Application.php:874
 Symfony\Component\Console\Application->doRunCommand() at PhpstormProjects\MyProject\general\data\lib\vendor\symfony\console\Symfony\Component\Console\Application.php:195
 Symfony\Component\Console\Application->doRun() at PhpstormProjects\MyProject\general\data\lib\vendor\symfony\console\Symfony\Component\Console\Application.php:126
 Symfony\Component\Console\Application->run() at PhpstormProjects\MyProject\general\data\lib\vendor\codeception\codeception\codecept:28

可能在代码中有一些工具允许在函数amOnPage()中使用绝对URL吗?

有人解决了这个问题吗?可能有人知道如何帮助解决这个问题?

谢谢!

php automated-tests codeception
2个回答
4
投票

使用带协议的完整网址:

$website = 'http://example.com';
$adm_int = 'http://edit-example.com';

并使用amOnUrl方法而不是amOnPage


1
投票

在给定的绝对URL处打开网页,并将其主机名设置为基本主机。

<?php
 $I->amOnUrl('http://codeception.com');
 $I->amOnPage('/quickstart'); // moves to http://codeception.com/quickstart
?>

并启动selenium服务器以在浏览器中运行自动化,如Chrome,firefox和所有

设置和启动selenium服务器使用命令提示符中的以下命令

  cmd:   webdriver-manager update 
  cmd:   webdriver-manager start

请仔细阅读以下代码并在acceptance.suite.yml中添加浏览器名称

modules:
    enabled:
    - WebDriver
config:
    WebDriver:
        url: 'example.com'
        browser: chrome
© www.soinside.com 2019 - 2024. All rights reserved.