Тесты состоят из 2х слоев:
Тесты (набор исполняемых методов в нужной последовательности)
Исполняемый код (page pattern)
Структура тестов:
use GsTest\LisOrders\RegistrationPatient\AttachPatientToLabOrder;
use GsTest\MainPage\Kontragent\CheckKontragent;
use GsTest\MainPage\Login\LoginStaff;
...
class Reg777LisTest
{
/**
* @var AttachPatientToLabOrder
*/
private $attachPatientToLabOrder;
/**
* @var CheckKontragent
*/
private $checkKontragent;
/**
* @var LoginStaff
*/
private $loginStaff;
public function setUp()
{
parent::setUp();
$this->attachPatientToLabOrder = new AttachPatientToLabOrder();
$this->checkKontragent = new CheckKontragent();
$this->loginStaff= new LoginStaff();
}
public function testLisReg777()
{
$stack = [];
$this->assertEquals(0, count($stack));
//Переменные
$url_site = "http://master.gemosystem-test/index.php";
$username = "reg777";
$user_password = "27bbd9";
$select_kontragent = "ДУП учебный класс";
$kkm = '12344321';
//Переход на тестируемую страницу
$this->webDriver->get($url_site);
//логин
$this->loginStaff->loginPage($username, $user_password);
$this->checkKontragent->select_kotragent($select_kontragent);
$this->attachPatientToLabOrder->testAttachPatientToLabOrder();
}
}
Структура тестовых методов:
<?php
namespace GsTest\MainPage\Login;
use Facebook\WebDriver\WebDriverBy;
use GsTest\Helper\TestHelper;
class LoginStaff extends TestHelper
{
public function loginPage($username, $user_password)
{
$this->webDriver->findElement(WebDriverBy::id("urAuth"))->click();
$this->webDriver->findElement(WebDriverBy::id("LoginFormFiz_username"))->click();
$this->webDriver->findElement(WebDriverBy::id("LoginFormFiz_username"))->clear();
$this->webDriver->findElement(WebDriverBy::id("LoginFormFiz_username"))->sendKeys("{$username}");
$this->webDriver->findElement(WebDriverBy::id("LoginFormFiz_password"))->click();
$this->webDriver->findElement(WebDriverBy::id("LoginFormFiz_password"))->clear();
$this->webDriver->findElement(WebDriverBy::id("LoginFormFiz_password"))->sendKeys("{$user_password}");
$this->webDriver->findElement(WebDriverBy::id("submitBtn"))->click();
}
}
Архитектура родителя тестовых методов:
<?php
namespace GsTest\Helper;
use Facebook\WebDriver\Remote\RemoteWebDriver;
class TestHelper
{
/**
* @var RemoteWebDriver
*/
protected $webDriver;
public function __construct()
{
$this->webDriver = $GLOBALS['webDriver'];
}
}
Комментарии
Комментариев пока нет.