添加地址、商品购买
This commit is contained in:
parent
0085f2dd2d
commit
7955534530
|
|
@ -0,0 +1,3 @@
|
||||||
|
<?php
|
||||||
|
phpinfo();
|
||||||
|
?>
|
||||||
|
|
@ -10,7 +10,8 @@
|
||||||
stopOnFailure="false">
|
stopOnFailure="false">
|
||||||
<testsuites>
|
<testsuites>
|
||||||
<testsuite name="Browser Test Suite">
|
<testsuite name="Browser Test Suite">
|
||||||
<directory suffix="Test.php">./tests/Browser</directory>
|
<directory suffix="Test.php">tests\Browser\dusktest\page\front\RegisterTest.php</directory>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
</testsuites>
|
</testsuites>
|
||||||
</phpunit>
|
</phpunit>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
<testsuite name="Feature">
|
<testsuite name="Feature">
|
||||||
<directory suffix="Test.php">./tests/Feature</directory>
|
<directory suffix="Test.php">./tests/Feature</directory>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
|
|
||||||
</testsuites>
|
</testsuites>
|
||||||
<coverage processUncoveredFiles="true">
|
<coverage processUncoveredFiles="true">
|
||||||
<include>
|
<include>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
<?php
|
||||||
|
phpinfo();
|
||||||
|
?>
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Tests\DuskTestCase;
|
||||||
|
|
||||||
|
use PHPUnit\Framework\TestSuite;
|
||||||
|
require_once __DIR__.'/../page/front/LoginTest.php';
|
||||||
|
require_once __DIR__.'/../page/front/RegisterTest.php';
|
||||||
|
class DuskTestSuite extends DuskTestCase
|
||||||
|
{
|
||||||
|
public static function suite()
|
||||||
|
{
|
||||||
|
$suite = new TestSuite('Dusk Tests');
|
||||||
|
|
||||||
|
$suite->addTestFile(__DIR__.'/../page/front/LoginTest.php');
|
||||||
|
$suite->addTestFile(__DIR__.'/../page/front/RegisterTest.php');
|
||||||
|
|
||||||
|
return $suite;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
//require_once __DIR__.'/../../../../vendor/autoload.php';
|
||||||
|
//require_once __DIR__.'/DuskTestSuite.php';
|
||||||
|
//require_once __DIR__.'/../page/front/RegisterTest.php';
|
||||||
|
|
||||||
|
use PHPUnit\Framework\TestResult;
|
||||||
|
use Tests\DuskTestCase;
|
||||||
|
use PHPUnit\Framework\TestSuite;
|
||||||
|
use PHPUnit\TextUI\ResultPrinter;
|
||||||
|
use PHPUnit\TextUI\DefaultResultPrinter;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$suite = new TestSuite();
|
||||||
|
// 向测试套件中添加测试用例
|
||||||
|
//1.先注册一个账户
|
||||||
|
$suite->addTestFile('E:\phpstudy_pro\WWW\autotest.test\beikeshop\tests\Browser\dusktest\page\front\RegisterFirst.php');
|
||||||
|
//注册
|
||||||
|
$suite->addTestFile('E:\phpstudy_pro\WWW\autotest.test\beikeshop\tests\Browser\dusktest\page\front\RegisterTest.php');
|
||||||
|
//增加地址
|
||||||
|
$suite->addTestFile('E:\phpstudy_pro\WWW\autotest.test\beikeshop\tests\Browser\dusktest\page\front\AddressTest.php');
|
||||||
|
$suite->addTestFile('E:\phpstudy_pro\WWW\autotest.test\beikeshop\tests\Browser\dusktest\page\front\LoginTest.php');
|
||||||
|
$suite->addTestFile('E:\phpstudy_pro\WWW\autotest.test\beikeshop\tests\Browser\dusktest\page\front\OrderTest.php');
|
||||||
|
// 运行测试套件
|
||||||
|
$result = $suite->run();
|
||||||
|
// 输出测试结果
|
||||||
|
$printer = new DefaultResultPrinter();
|
||||||
|
// 输出测试结果
|
||||||
|
$printer->printResult($result);
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
|
|
||||||
namespace Tests\Browser;
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
namespace App\Http\Controllers\login;
|
|
||||||
namespace App\Http\Controllers\TestCase;
|
|
||||||
use App\Http\Controllers\LoginGrounp;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
use Laravel\Dusk\Browser;
|
|
||||||
use Tests\DuskTestCase;
|
|
||||||
use App\Http\Controllers\By;
|
|
||||||
use PHPUnit\Framework\TestCase;
|
|
||||||
|
|
||||||
require_once 'vendor/autoload.php';
|
|
||||||
require_once(dirname(__FILE__) . '/../page/front/loginGrounp.php');
|
|
||||||
|
|
||||||
|
|
||||||
class Run_Login_Case extends DuskTestCase
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A basic browser test example.
|
|
||||||
*/
|
|
||||||
|
|
||||||
public function runScenarios(array $scenarios)
|
|
||||||
{
|
|
||||||
foreach ($scenarios as $scenario) {
|
|
||||||
$this->$scenario();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_login_run()
|
|
||||||
{
|
|
||||||
$Loginful = new LoginGrounp();
|
|
||||||
$Loginful->openurl();
|
|
||||||
|
|
||||||
// $this->runScenarios([
|
|
||||||
// 'openurl',
|
|
||||||
// 'ture_email',
|
|
||||||
// 'ture_password',
|
|
||||||
// 'click_login_btn',
|
|
||||||
// 'ture_assert',
|
|
||||||
// ]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
const add_address = [
|
||||||
|
"add_name"=>"test",//add_name
|
||||||
|
"add_phone"=>"v11012010086",//选择国家
|
||||||
|
"add_code"=>"643203",//add_code
|
||||||
|
"add_address1"=>"test1",//add_address1
|
||||||
|
"add_address2"=>"test2",//add_address2
|
||||||
|
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?php
|
||||||
|
const account = [
|
||||||
|
"login_url" =>"/account",
|
||||||
|
"go_index"=>"Home",//beikeshop图标
|
||||||
|
];
|
||||||
|
const address = [
|
||||||
|
"login_url" =>"/account/addresses",
|
||||||
|
"add_btn"=>"Add New Address",
|
||||||
|
"go_address"=>"Addresses",//beikeshop图标
|
||||||
|
"add_name"=>"#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(1) > div > div > input",//add_name
|
||||||
|
"add_phone"=>"#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(2) > div > div > input",//add_phone
|
||||||
|
"add_country"=>"#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(3) > div > div > div:nth-child(1) > div > div > div > div.el-input.el-input--suffix > span > span",//选择国家
|
||||||
|
"add_address"=>"#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(3) > div > div > div:nth-child(3) > div > div > div.el-input > input",
|
||||||
|
"add_province"=>"#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(3) > div > div > div:nth-child(2) > div > div > div > div.el-input.el-input--suffix > span > span",
|
||||||
|
"add_code"=>"#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(4) > div > div > input",//add_code
|
||||||
|
"add_address1"=>"#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(5) > div > div > input",//add_address1
|
||||||
|
"add_address2"=>"#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(6) > div > div > input",//add_address2
|
||||||
|
"default"=>"#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(7) > div > div > span",//default
|
||||||
|
"save"=>"#address-app > div:nth-child(2) > div > div > div.el-dialog__body > form > div:nth-child(8) > div > button.el-button.el-button--primary",//save
|
||||||
|
"assert"=>"Default Address",
|
||||||
|
//addresses
|
||||||
|
];
|
||||||
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
const checkout = [
|
||||||
|
'submit' => 'Submit Order',
|
||||||
|
'assert' => 'Congratulations, the order was successfully generated!',
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?php
|
||||||
|
const index = [
|
||||||
|
"login_url" => "/",
|
||||||
|
"product_img" => "#tab-product-0 > div > div:nth-child(1) > div > div.image > a",//购买商品图标
|
||||||
|
|
||||||
|
"buy_btn" => "#product-top > div:nth-child(2) > div > div.quantity-btns > button.btn.btn-dark.ms-3.fw-bold",//购买按钮
|
||||||
|
"address_btn" => "#checkout-address-app > div.checkout-black > div.addresses-wrap > div > div > div > button", //添加地址
|
||||||
|
"login_text" => "Home",
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
const order = [
|
||||||
|
"login_url" =>"/login",
|
||||||
|
"product"=> "#tab-product-0 > div > div:nth-child(1) > div > div.image > a > div > img",//购买商品
|
||||||
|
"buy_btn"=> "#product-top > div:nth-child(2) > div > div.quantity-btns > button.btn.btn-dark.ms-3.fw-bold",//购买按钮
|
||||||
|
"address_btn"=>"#checkout-address-app > div.checkout-black > div.addresses-wrap > div > div > div > button", //添加地址
|
||||||
|
"login_text"=> "Home",
|
||||||
|
];
|
||||||
|
const register = [
|
||||||
|
"register_email" => "#page-login > div.login-wrap > div:nth-child(3) > div.card-body.px-md-2 > form > div:nth-child(1) > div > div > input",
|
||||||
|
"register_pwd"=> "#page-login > div.login-wrap > div:nth-child(3) > div.card-body.px-md-2 > form > div:nth-child(2) > div > div > input",
|
||||||
|
"register_re_pwd"=> "#page-login > div.login-wrap > div:nth-child(3) > div.card-body.px-md-2 > form > div:nth-child(3) > div > div > input",
|
||||||
|
"register_btn"=> "Register",
|
||||||
|
"register_text"=> "Home",
|
||||||
|
];
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
const product = [
|
||||||
|
"login_url" =>"/products/1",
|
||||||
|
"product_1"=> "Buy Now",//购买商品
|
||||||
|
"buy_btn"=> "#product-top > div:nth-child(2) > div > div.quantity-btns > button.btn.btn-dark.ms-3.fw-bold",//购买按钮
|
||||||
|
"address_btn"=>"#checkout-address-app > div.checkout-black > div.addresses-wrap > div > div > div > button", //添加地址
|
||||||
|
"login_text"=> "Home",
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
|
|
||||||
const true_register = [
|
const true_register = [
|
||||||
'email' => 'testtest@163.com',
|
'email' => 'test2@163.com',
|
||||||
'password' => '123456',
|
'password' => '123456',
|
||||||
'assert' => 'Sign Out',
|
'assert' => 'Sign Out',
|
||||||
];
|
];
|
||||||
|
|
||||||
const false_register = [
|
const false_register = [
|
||||||
'false_email' => 'test@163.com', //已注册的email
|
'exist_email' => 'test@163.com', //已注册的email
|
||||||
'illegal_email' => 'test',
|
'illegal_email' => 'test',
|
||||||
'false_password' => '1234567',
|
'false_password' => '1234567',
|
||||||
'false_assert' => 'User login and registration',
|
'false_assert' => 'User login and registration',
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,63 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\Browser;
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
|
||||||
|
use Laravel\Dusk\Browser;
|
||||||
|
use Tests\DuskTestCase;
|
||||||
|
use App\Http\Controllers\By;
|
||||||
|
|
||||||
|
require_once(dirname(__FILE__) . '/../../data/login.php');
|
||||||
|
require_once(dirname(__FILE__) . '/../../data/login_page.php');
|
||||||
|
require_once(dirname(__FILE__) . '/../../data/account_page.php');
|
||||||
|
require_once(dirname(__FILE__) . '/../../data/account.php');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//已注册客户且有地址,直接购买商品
|
||||||
|
class AddressTest extends DuskTestCase
|
||||||
|
{
|
||||||
|
public function testAddress()
|
||||||
|
{
|
||||||
|
$this->browse(function (Browser $browser) {
|
||||||
|
$browser->visit(login['login_url'])
|
||||||
|
//1.用户登录
|
||||||
|
->type(login['login_email'], true_login['email'])
|
||||||
|
->type(login['login_pwd'], true_login['password'])
|
||||||
|
->press(login['login_btn'])
|
||||||
|
->pause(2000)
|
||||||
|
//当前网址断言
|
||||||
|
->assertUrlIs('http://autotest.test/account', $browser->driver->getCurrentURL())
|
||||||
|
//2.点击address
|
||||||
|
->clickLink(address['go_address'])
|
||||||
|
//3.点击添加地址
|
||||||
|
->press(address['add_btn'])
|
||||||
|
->pause(3000)
|
||||||
|
//3.1 name
|
||||||
|
->type(address['add_name'], add_address['add_name'])
|
||||||
|
//3.2 phone
|
||||||
|
->type(address['add_phone'], add_address['add_phone'])
|
||||||
|
//3.3 address
|
||||||
|
->type(address['add_address'], add_address['add_name'])
|
||||||
|
//3.4 code
|
||||||
|
->type(address['add_code'], add_address['add_code'])
|
||||||
|
//3.5 address1
|
||||||
|
->type(address['add_address1'], add_address['add_address2'])
|
||||||
|
//3.6 address2
|
||||||
|
->type(address['add_address2'], add_address['add_address2'])
|
||||||
|
//3.7 defaule
|
||||||
|
->press((address['default']))
|
||||||
|
//3.8 save
|
||||||
|
->press((address['save']))
|
||||||
|
->pause(3000)
|
||||||
|
->assertSee(address['assert']);
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
//3.向下滑动页面直到找到元素
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,148 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
namespace Tests\Browser;
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
namespace App\Http\Controllers\LoginGrounp;
|
|
||||||
|
|
||||||
use Laravel\Dusk\Browser;
|
|
||||||
use Tests\DuskTestCase;
|
|
||||||
use App\Http\Controllers\By;
|
|
||||||
|
|
||||||
require_once(dirname(__FILE__) . '/../../data/login.php');
|
|
||||||
require_once(dirname(__FILE__) . '/../../data/login_page.php');
|
|
||||||
|
|
||||||
class LoginGrounp extends DuskTestCase
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* A basic browser test example.
|
|
||||||
*/
|
|
||||||
public function runScenarios(array $scenarios)
|
|
||||||
{
|
|
||||||
foreach ($scenarios as $scenario) {
|
|
||||||
$this->$scenario();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#1.打开浏览器
|
|
||||||
public function openurl()
|
|
||||||
{
|
|
||||||
$this->browse(function (Browser $browser) {
|
|
||||||
$browser->visit(login['login_url'])
|
|
||||||
->pause(2000);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
#输入正确email
|
|
||||||
public function true_email()
|
|
||||||
{
|
|
||||||
$this->browse(function (Browser $browser) {
|
|
||||||
$browser->type(login['login_email'], true_login['email']);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
#输入错误的email
|
|
||||||
public function false_email()
|
|
||||||
{
|
|
||||||
$this->browse(function (Browser $browser) {
|
|
||||||
$browser->type(login['login_email'], false_login['false_email']);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
#输入非法的email
|
|
||||||
public function illegal_email()
|
|
||||||
{
|
|
||||||
$this->browse(function (Browser $browser) {
|
|
||||||
$browser->type(login['login_email'], false_login['illegal_email']);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
#输入正确的password
|
|
||||||
public function true_password()
|
|
||||||
{
|
|
||||||
$this->browse(function (Browser $browser) {
|
|
||||||
$browser->type(login['login_pwd'], true_login['password']);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
#输入错误的password
|
|
||||||
public function false_password()
|
|
||||||
{
|
|
||||||
$this->browse(function (Browser $browser) {
|
|
||||||
$browser->type(login['login_pwd'], false_login['false_password']);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
#点击login
|
|
||||||
public function click_login_btn()
|
|
||||||
{
|
|
||||||
$this->browse(function (Browser $browser) {
|
|
||||||
$browser->press(login['login_btn']);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
#登录正确断言
|
|
||||||
public function true_assert()
|
|
||||||
{
|
|
||||||
$this->browse(function (Browser $browser) {
|
|
||||||
$browser->assertSee(true_login['assert'])
|
|
||||||
->pause(3000)
|
|
||||||
->quit();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
#登录错误断言
|
|
||||||
public function false_assert()
|
|
||||||
{
|
|
||||||
$this->browse(function (Browser $browser) {
|
|
||||||
$browser->assertSee(false_login['false_assert'])
|
|
||||||
->pause(3000)
|
|
||||||
->quit();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
#组合测试
|
|
||||||
#场景1---密码账号正确
|
|
||||||
public function test_login_ful()
|
|
||||||
{
|
|
||||||
$this->runScenarios([
|
|
||||||
'openurl',
|
|
||||||
'true_email',
|
|
||||||
'true_password',
|
|
||||||
'click_login_btn'=> function (Browser $browser) {
|
|
||||||
$browser->pause(1000) // 等待页面跳转
|
|
||||||
->assertPathIs('/account');
|
|
||||||
},
|
|
||||||
'true_assert' => function (Browser $browser) {
|
|
||||||
$browser->assertSee('欢迎回来!');
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
#场景2---密码错误、账号正确
|
|
||||||
public function test_pwd_error()
|
|
||||||
{
|
|
||||||
$this->runScenarios([
|
|
||||||
'openurl',
|
|
||||||
'true_email',
|
|
||||||
'false_password',
|
|
||||||
'click_login_btn',
|
|
||||||
'false_assert',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
#场景3---密码正确、账号错误
|
|
||||||
public function test_email_error()
|
|
||||||
{
|
|
||||||
$this->runScenarios([
|
|
||||||
'openurl',
|
|
||||||
'false_email',
|
|
||||||
'true_password',
|
|
||||||
'click_login_btn',
|
|
||||||
'false_assert',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
#场景4---密码正确、账号非法
|
|
||||||
public function test_email_illegal()
|
|
||||||
{
|
|
||||||
$this->runScenarios([
|
|
||||||
'openurl',
|
|
||||||
'false_email',
|
|
||||||
'illegal_email',
|
|
||||||
'click_login_btn',
|
|
||||||
'false_assert',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -48,7 +48,7 @@ class LoginTest extends DuskTestCase
|
||||||
$this->browse(function (Browser $browser)
|
$this->browse(function (Browser $browser)
|
||||||
{
|
{
|
||||||
$browser->visit(login['login_url'])
|
$browser->visit(login['login_url'])
|
||||||
->type(login['login_email'], false_login['false_email'])
|
->type(login['login_email'], true_login['email'])
|
||||||
->type(login['login_pwd'], false_login['false_password'])
|
->type(login['login_pwd'], false_login['false_password'])
|
||||||
->press(login['login_btn'])
|
->press(login['login_btn'])
|
||||||
->assertSee(false_login['false_assert']);
|
->assertSee(false_login['false_assert']);
|
||||||
|
|
@ -60,7 +60,7 @@ class LoginTest extends DuskTestCase
|
||||||
$this->browse(function (Browser $browser)
|
$this->browse(function (Browser $browser)
|
||||||
{
|
{
|
||||||
$browser->visit(login['login_url'])
|
$browser->visit(login['login_url'])
|
||||||
->type(login['login_email'], false_login['false_email'])
|
->type(login['login_email'], true_login['email'])
|
||||||
->press(login['login_btn'])
|
->press(login['login_btn'])
|
||||||
->assertSee(false_login['false_assert']);
|
->assertSee(false_login['false_assert']);
|
||||||
});
|
});
|
||||||
|
|
@ -71,7 +71,7 @@ class LoginTest extends DuskTestCase
|
||||||
$this->browse(function (Browser $browser)
|
$this->browse(function (Browser $browser)
|
||||||
{
|
{
|
||||||
$browser->visit(login['login_url'])
|
$browser->visit(login['login_url'])
|
||||||
->type(login['login_pwd'], false_login['false_password'])
|
->type(login['login_pwd'], true_login['email'])
|
||||||
->press(login['login_btn'])
|
->press(login['login_btn'])
|
||||||
->assertSee(false_login['false_assert']);
|
->assertSee(false_login['false_assert']);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
<?php
|
||||||
|
namespace Tests\Browser;
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
|
||||||
|
use Laravel\Dusk\Browser;
|
||||||
|
use Tests\DuskTestCase;
|
||||||
|
use App\Http\Controllers\By;
|
||||||
|
|
||||||
|
require_once(dirname(__FILE__) . '/../../data/login.php');
|
||||||
|
require_once(dirname(__FILE__) . '/../../data/login_page.php');
|
||||||
|
require_once(dirname(__FILE__) . '/../../data/account_page.php');
|
||||||
|
require_once(dirname(__FILE__) . '/../../data/product_1.php');
|
||||||
|
require_once(dirname(__FILE__) . '/../../data/index_page.php');
|
||||||
|
require_once(dirname(__FILE__) . '/../../data/checkout_page.php');
|
||||||
|
|
||||||
|
//已注册客户且有地址,直接购买商品
|
||||||
|
class OrderTest extends DuskTestCase
|
||||||
|
{
|
||||||
|
public function testOrder()
|
||||||
|
{
|
||||||
|
$this->browse(function (Browser $browser)
|
||||||
|
{
|
||||||
|
$browser->visit(login['login_url'])
|
||||||
|
//1.用户登录
|
||||||
|
->type(login['login_email'], true_login['email'])
|
||||||
|
->type(login['login_pwd'], true_login['password'])
|
||||||
|
->press(login['login_btn'])
|
||||||
|
->pause(2000)
|
||||||
|
//当前网址断言
|
||||||
|
->assertUrlIs('http://autotest.test/account', $browser->driver->getCurrentURL())
|
||||||
|
//打印查看当前网址
|
||||||
|
// $html = $browser->driver->getCurrentURL();
|
||||||
|
// print_r($html);
|
||||||
|
// ->driver->getCurrentURL()
|
||||||
|
//2.点击home跳转到首页
|
||||||
|
->clickLink(account['go_index'])
|
||||||
|
//3.向下滑动页面直到找到元素
|
||||||
|
->scrollIntoView(index['product_img'])
|
||||||
|
// ->mouseover(index['product_img'])
|
||||||
|
->pause(2000)
|
||||||
|
//点击要购买的商品
|
||||||
|
->press(index['product_img'])
|
||||||
|
//4.点击购买按钮
|
||||||
|
->press(product['product_1'])
|
||||||
|
->pause(5000)
|
||||||
|
//5.点击确认按钮
|
||||||
|
->press(checkout['submit'])
|
||||||
|
->pause(5000)
|
||||||
|
//6.断言
|
||||||
|
->assertSee(checkout['assert']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
namespace Tests\Browser;
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
namespace App\Http\Controllers\LoginGrounp;
|
||||||
|
|
||||||
|
use Laravel\Dusk\Browser;
|
||||||
|
use Tests\DuskTestCase;
|
||||||
|
use App\Http\Controllers\By;
|
||||||
|
|
||||||
|
require_once(dirname(__FILE__) . '/../../data/login.php');
|
||||||
|
require_once(dirname(__FILE__) . '/../../data/login_page.php');
|
||||||
|
|
||||||
|
class RegisterFirst extends DuskTestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* A basic browser test example.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#1.先单独注册一个账号
|
||||||
|
public function testLoginFirst()
|
||||||
|
|
||||||
|
{
|
||||||
|
$this->browse(function (Browser $browser) {
|
||||||
|
$browser->visit(login['login_url'])
|
||||||
|
->type(register['register_email'], false_register['exist_email'])
|
||||||
|
->type(register['register_pwd'], true_register['password'])
|
||||||
|
->type(register['register_re_pwd'], true_register['password'])
|
||||||
|
->press(register['register_btn'])
|
||||||
|
->pause(3000)
|
||||||
|
->assertSee(true_register['assert']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
namespace Tests\Browser;
|
namespace Tests\Browser;
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
||||||
use Laravel\Dusk\Browser;
|
use Laravel\Dusk\Browser;
|
||||||
use Tests\DuskTestCase;
|
use Tests\DuskTestCase;
|
||||||
|
|
||||||
|
|
@ -13,7 +13,7 @@ require_once(dirname(__FILE__) . '/../../data/login_page.php');
|
||||||
|
|
||||||
class RegisterTest extends DuskTestCase
|
class RegisterTest extends DuskTestCase
|
||||||
{
|
{
|
||||||
use RefreshDatabase;
|
|
||||||
/**
|
/**
|
||||||
* A basic browser test example.
|
* A basic browser test example.
|
||||||
*/
|
*/
|
||||||
|
|
@ -23,7 +23,7 @@ class RegisterTest extends DuskTestCase
|
||||||
{
|
{
|
||||||
$this->browse(function (Browser $browser) {
|
$this->browse(function (Browser $browser) {
|
||||||
$browser->visit(login['login_url'])
|
$browser->visit(login['login_url'])
|
||||||
->type(register['register_email'], false_register['false_email'])
|
->type(register['register_email'], false_register['exist_email'])
|
||||||
->type(register['register_pwd'], true_register['password'])
|
->type(register['register_pwd'], true_register['password'])
|
||||||
->type(register['register_re_pwd'], true_register['password'])
|
->type(register['register_re_pwd'], true_register['password'])
|
||||||
->press(register['register_btn'])
|
->press(register['register_btn'])
|
||||||
|
|
@ -102,6 +102,7 @@ class RegisterTest extends DuskTestCase
|
||||||
->type(register['register_pwd'], true_register['password'])
|
->type(register['register_pwd'], true_register['password'])
|
||||||
->type(register['register_re_pwd'], true_register['password'])
|
->type(register['register_re_pwd'], true_register['password'])
|
||||||
->press(register['register_btn'])
|
->press(register['register_btn'])
|
||||||
|
->pause(3000)
|
||||||
->assertSee(true_register['assert']);
|
->assertSee(true_register['assert']);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue