diff --git a/phpinfo.php b/phpinfo.php
new file mode 100644
index 00000000..968c8df7
--- /dev/null
+++ b/phpinfo.php
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/phpunit.dusk.xml b/phpunit.dusk.xml
index 07f70bd1..aedee3ae 100644
--- a/phpunit.dusk.xml
+++ b/phpunit.dusk.xml
@@ -10,7 +10,8 @@
stopOnFailure="false">
- ./tests/Browser
+ tests\Browser\dusktest\page\front\RegisterTest.php
+
diff --git a/phpunit.xml b/phpunit.xml
index 4ae4d979..0a80004f 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -11,6 +11,7 @@
./tests/Feature
+
diff --git a/public/phpinfo.php b/public/phpinfo.php
new file mode 100644
index 00000000..968c8df7
--- /dev/null
+++ b/public/phpinfo.php
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/tests/Browser/dusktest/RunnerTestCase/DuskTestSuite.php b/tests/Browser/dusktest/RunnerTestCase/DuskTestSuite.php
new file mode 100644
index 00000000..bbdb5010
--- /dev/null
+++ b/tests/Browser/dusktest/RunnerTestCase/DuskTestSuite.php
@@ -0,0 +1,19 @@
+addTestFile(__DIR__.'/../page/front/LoginTest.php');
+ $suite->addTestFile(__DIR__.'/../page/front/RegisterTest.php');
+
+ return $suite;
+ }
+}
diff --git a/tests/Browser/dusktest/RunnerTestCase/Run_Case.php b/tests/Browser/dusktest/RunnerTestCase/Run_Case.php
new file mode 100644
index 00000000..950c276e
--- /dev/null
+++ b/tests/Browser/dusktest/RunnerTestCase/Run_Case.php
@@ -0,0 +1,31 @@
+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);
diff --git a/tests/Browser/dusktest/RunnerTestCase/Run_Login_Case.php b/tests/Browser/dusktest/RunnerTestCase/Run_Login_Case.php
deleted file mode 100644
index c6c2c63e..00000000
--- a/tests/Browser/dusktest/RunnerTestCase/Run_Login_Case.php
+++ /dev/null
@@ -1,48 +0,0 @@
-$scenario();
- }
- }
-
- public function test_login_run()
- {
- $Loginful = new LoginGrounp();
- $Loginful->openurl();
-
-// $this->runScenarios([
-// 'openurl',
-// 'ture_email',
-// 'ture_password',
-// 'click_login_btn',
-// 'ture_assert',
-// ]);
- }
-}
diff --git a/tests/Browser/dusktest/data/account.php b/tests/Browser/dusktest/data/account.php
new file mode 100644
index 00000000..eb260273
--- /dev/null
+++ b/tests/Browser/dusktest/data/account.php
@@ -0,0 +1,9 @@
+"test",//add_name
+ "add_phone"=>"v11012010086",//选择国家
+ "add_code"=>"643203",//add_code
+ "add_address1"=>"test1",//add_address1
+ "add_address2"=>"test2",//add_address2
+
+];
diff --git a/tests/Browser/dusktest/data/account_page.php b/tests/Browser/dusktest/data/account_page.php
new file mode 100644
index 00000000..2a96a88f
--- /dev/null
+++ b/tests/Browser/dusktest/data/account_page.php
@@ -0,0 +1,23 @@
+"/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
+];
+
diff --git a/tests/Browser/dusktest/data/checkout_page.php b/tests/Browser/dusktest/data/checkout_page.php
new file mode 100644
index 00000000..4144dee2
--- /dev/null
+++ b/tests/Browser/dusktest/data/checkout_page.php
@@ -0,0 +1,7 @@
+ 'Submit Order',
+ 'assert' => 'Congratulations, the order was successfully generated!',
+];
diff --git a/tests/Browser/dusktest/data/index_page.php b/tests/Browser/dusktest/data/index_page.php
new file mode 100644
index 00000000..1622a5cf
--- /dev/null
+++ b/tests/Browser/dusktest/data/index_page.php
@@ -0,0 +1,9 @@
+ "/",
+ "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",
+];
diff --git a/tests/Browser/dusktest/data/order_page.php b/tests/Browser/dusktest/data/order_page.php
new file mode 100644
index 00000000..8a77631e
--- /dev/null
+++ b/tests/Browser/dusktest/data/order_page.php
@@ -0,0 +1,17 @@
+"/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",
+];
diff --git a/tests/Browser/dusktest/data/product_1.php b/tests/Browser/dusktest/data/product_1.php
new file mode 100644
index 00000000..d3201210
--- /dev/null
+++ b/tests/Browser/dusktest/data/product_1.php
@@ -0,0 +1,10 @@
+"/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",
+];
+
+
diff --git a/tests/Browser/dusktest/data/register.php b/tests/Browser/dusktest/data/register.php
index 68f85da2..9f5f9f38 100644
--- a/tests/Browser/dusktest/data/register.php
+++ b/tests/Browser/dusktest/data/register.php
@@ -2,13 +2,13 @@
const true_register = [
- 'email' => 'testtest@163.com',
+ 'email' => 'test2@163.com',
'password' => '123456',
'assert' => 'Sign Out',
];
const false_register = [
- 'false_email' => 'test@163.com', //已注册的email
+ 'exist_email' => 'test@163.com', //已注册的email
'illegal_email' => 'test',
'false_password' => '1234567',
'false_assert' => 'User login and registration',
diff --git a/tests/Browser/dusktest/page/front/AddressTest.php b/tests/Browser/dusktest/page/front/AddressTest.php
new file mode 100644
index 00000000..6b81e37f
--- /dev/null
+++ b/tests/Browser/dusktest/page/front/AddressTest.php
@@ -0,0 +1,63 @@
+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.向下滑动页面直到找到元素
+
+ });
+ }
+}
diff --git a/tests/Browser/dusktest/page/front/LoginGrounp.php b/tests/Browser/dusktest/page/front/LoginGrounp.php
deleted file mode 100644
index 8bfec4a2..00000000
--- a/tests/Browser/dusktest/page/front/LoginGrounp.php
+++ /dev/null
@@ -1,148 +0,0 @@
-$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',
- ]);
- }
-}
diff --git a/tests/Browser/dusktest/page/front/LoginTest.php b/tests/Browser/dusktest/page/front/LoginTest.php
index 10cd137c..a2b5f357 100644
--- a/tests/Browser/dusktest/page/front/LoginTest.php
+++ b/tests/Browser/dusktest/page/front/LoginTest.php
@@ -48,7 +48,7 @@ class LoginTest extends DuskTestCase
$this->browse(function (Browser $browser)
{
$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'])
->press(login['login_btn'])
->assertSee(false_login['false_assert']);
@@ -60,7 +60,7 @@ class LoginTest extends DuskTestCase
$this->browse(function (Browser $browser)
{
$browser->visit(login['login_url'])
- ->type(login['login_email'], false_login['false_email'])
+ ->type(login['login_email'], true_login['email'])
->press(login['login_btn'])
->assertSee(false_login['false_assert']);
});
@@ -71,7 +71,7 @@ class LoginTest extends DuskTestCase
$this->browse(function (Browser $browser)
{
$browser->visit(login['login_url'])
- ->type(login['login_pwd'], false_login['false_password'])
+ ->type(login['login_pwd'], true_login['email'])
->press(login['login_btn'])
->assertSee(false_login['false_assert']);
});
diff --git a/tests/Browser/dusktest/page/front/OrderTest.php b/tests/Browser/dusktest/page/front/OrderTest.php
new file mode 100644
index 00000000..7918ba54
--- /dev/null
+++ b/tests/Browser/dusktest/page/front/OrderTest.php
@@ -0,0 +1,54 @@
+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']);
+ });
+ }
+}
diff --git a/tests/Browser/dusktest/page/front/RegisterFirst.php b/tests/Browser/dusktest/page/front/RegisterFirst.php
new file mode 100644
index 00000000..5c51003e
--- /dev/null
+++ b/tests/Browser/dusktest/page/front/RegisterFirst.php
@@ -0,0 +1,37 @@
+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']);
+ });
+ }
+}
diff --git a/tests/Browser/dusktest/page/front/RegisterTest.php b/tests/Browser/dusktest/page/front/RegisterTest.php
index 11c43c6f..d98534ea 100644
--- a/tests/Browser/dusktest/page/front/RegisterTest.php
+++ b/tests/Browser/dusktest/page/front/RegisterTest.php
@@ -4,7 +4,7 @@
namespace Tests\Browser;
namespace App\Http\Controllers;
-use Illuminate\Foundation\Testing\RefreshDatabase;
+
use Laravel\Dusk\Browser;
use Tests\DuskTestCase;
@@ -13,7 +13,7 @@ require_once(dirname(__FILE__) . '/../../data/login_page.php');
class RegisterTest extends DuskTestCase
{
- use RefreshDatabase;
+
/**
* A basic browser test example.
*/
@@ -23,7 +23,7 @@ class RegisterTest extends DuskTestCase
{
$this->browse(function (Browser $browser) {
$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_re_pwd'], true_register['password'])
->press(register['register_btn'])
@@ -102,6 +102,7 @@ class RegisterTest extends DuskTestCase
->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']);
});
}