PHP?? ?? ???? ?? Codeception? ???? ??? ??????
May 31, 2023 pm 08:51 PM?? ? ?????? ?? ?????? ?? ???? ?????? ??? ???? ??? ?????. Codeception? ???? ? ?? ???? ???? ? ??? ?? ??? API? ???? ?? ??? ???? ?? ?? PHP ??? ????????. ? ????? ?? ???? Codeception? ???? ??? ?????.
1. Codeception ??
?? Codeception? ???? ???. Codeception? Composer, phar ??? ? ?? ????? ???? ??? ?? ??? ?????. ???? Composer? ???? ?? ??? ???? ?????.
composer require codeception/codeception --dev
??? ??? ? ???? ?? ????? codeception.yml
?? ??? ??? ? ????. codeception.yml
配置文件:
./vendor/bin/codecept bootstrap
二、編寫(xiě)測(cè)試用例
- 創(chuàng)建測(cè)試用例
Codeception中的測(cè)試用例分為不同的層級(jí),包括單元測(cè)試、集成測(cè)試和功能測(cè)試。在本文中,我們關(guān)注功能測(cè)試。
使用以下命令創(chuàng)建一個(gè)名為FunctionalTests
的測(cè)試套件:
./vendor/bin/codecept generate:suite functional
在測(cè)試用例目錄中,會(huì)自動(dòng)生成一個(gè)包含測(cè)試用例的FunctionalTests
文件夾。
- 訪問(wèn)網(wǎng)頁(yè)
接下來(lái),我們需要定義我們要測(cè)試的網(wǎng)頁(yè)。使用以下命令生成一個(gè)測(cè)試用例文件,例如我們要測(cè)試的網(wǎng)頁(yè)是http://example.com
:
./vendor/bin/codecept generate:cept functional ExampleTest
在生成的測(cè)試用例文件中,我們可以使用$I->amOnPage
方法訪問(wèn)網(wǎng)頁(yè):
<?php $I = new FunctionalTester($scenario); $I->amOnPage('http://example.com'); $I->see('Hello, world!');
在這個(gè)測(cè)試用例中,我們使用$I->amOnPage
方法打開(kāi)網(wǎng)頁(yè)。然后,我們使用$I->see
方法檢查網(wǎng)頁(yè)中是否存在Hello, world!
這個(gè)文本。
- 用戶交互
如果我們要測(cè)試的功能需要用戶交互,我們需要使用Codeception提供的模擬用戶操作的方法。例如,我們要在網(wǎng)頁(yè)中輸入文本:
<?php $I = new FunctionalTester($scenario); $I->amOnPage('http://example.com'); $I->fillField('username', 'testuser'); $I->click('Submit'); $I->see('Welcome, testuser!');
在這個(gè)測(cè)試用例中,我們使用$I->fillField
方法填寫(xiě)username
表單字段。然后,我們使用$I->click
方法模擬用戶單擊Submit
按鈕。最后,我們使用$I->see
方法檢查網(wǎng)頁(yè)中是否存在Welcome, testuser!
這個(gè)文本。
- 數(shù)據(jù)庫(kù)測(cè)試
如果我們的應(yīng)用程序需要與數(shù)據(jù)庫(kù)交互,我們需要使用Codeception提供的數(shù)據(jù)庫(kù)測(cè)試功能。在測(cè)試用例中,我們可以使用$I->haveInDatabase
方法向數(shù)據(jù)庫(kù)中添加數(shù)據(jù),使用$I->seeInDatabase
方法檢查數(shù)據(jù)是否存在。
例如,我們要測(cè)試的功能是向數(shù)據(jù)庫(kù)中添加一條用戶記錄:
<?php $I = new FunctionalTester($scenario); $I->amOnPage('http://example.com/create-user.php'); $I->fillField('username', 'testuser'); $I->fillField('password', 'testpassword'); $I->click('Submit'); $I->seeInDatabase('users', ['username' => 'testuser']);
在這個(gè)測(cè)試用例中,我們使用$I->haveInDatabase
方法向users
表中添加了一條記錄。然后,我們使用$I->seeInDatabase
方法檢查是否存在username
字段為testuser
的記錄。
三、執(zhí)行測(cè)試用例
在編寫(xiě)好測(cè)試用例之后,我們需要執(zhí)行測(cè)試用例。執(zhí)行以下命令運(yùn)行所有測(cè)試用例:
./vendor/bin/codecept run
如果我們只想運(yùn)行FunctionalTests
./vendor/bin/codecept run functional2. ??? ?? Cases
- ??? ??? ???
FunctionalTests
?? ??? ?? ??? ????. ??rrreee????? ?? ????? ??? ??? ??? FunctionalTests
??? ???? ?????. ??- ???? ??
http://example.com
???. ??rrreee????? ??? ?? ???? ??? ??? ? ????. $I ->amOnPage
???? ???? ????? ??????. ??rrreee?? ? ??? ????? $I->amOnPage
???? ???? ????? ???. . ?? ?? $I->see
???? ???? Hello, world!
???? ????? ????? ?????. ??- ??? ????
$I->fillField
???? ???? username
? ????. ?? ??. ?? ?? $I->click
???? ???? ???? Submit
??? ???? ?? ????????. ????? $I->see
???? ???? Welcome, testuser!
???? ????? ????? ?????. ??- ?????? ???
$I->haveInDatabase
???? ???? ??????? ???? ???? $I->seeInDatabase
???? ???? ???? ?????. ?????? ?? ?????? ??? ??????? ??? ???? ???? ????. ??rrreee??? ??? ????? $I->haveInDatabase
???? ???? users
code> ???? ???? ?????. ?? ?? $I->seeInDatabase
???? ???? username
??? testuser
? ???? ??? ?????. ????3. ??? ??? ????????? ???? ??? ??? ??? ???? ???? ???. ?? ??? ??? ????? ?? ??? ?????. ??rrreee??FunctionalTests
??? ??? ????? ?? ??? ??? ? ????. ??rrreee?? 4. ????????? Codeception ?? ???? ????? ?????? ??? ???? ? ??? ? ? ????. ?? ???? ??? ???? ???? ???? ??? ?????. Codeception? ???? ? ?? ???? ??? ???? ? ??? ?? ??? API? ???? ?? ??? ?????. ??? ??? PHP?? ?? ???? ?? Codeception? ???? ??? ??????? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

PHP?? ?? ?? ??? ???? ?? ??? ? ???? ?? ??? ???? ?? ??? ???? ???? ????. 1. ?? ?? ??? ?? ??? URL ? ?? ??? ????. 2. UrlenCode? ???? ?? ??? ???????. 3. ? ???? ????? ?? ?? ??? ? ?? ??? ?????. 4. ???? ???? ?? ? ? ??? ??? ??? ??? ?????. 5. ??? ?? ??? ????? ?? ????? OG ??? ???? ?????. 6. XSS ??? ???? ?? ??? ??? ?????. ? ???? ??? ??? ???? ??? ?? ?? ??? ??? ???? ??? ?? ??? ?????.

??? ?? ??? ??? ?? JavaScript? MediareCorder API? ?? PHP ???? ???? ?????. 2. PHP? ???? ?? ??? ???? STTAPI (? : Google ?? Baidu ?? ??)? ???? ???? ?????. 3. PHP? ???? AI ??? (? : OpenAigpt)? ????. 4. ?? ?? PHP? TTSAPI (? : Baidu ?? Google ?? ??)? ???? ??? ?? ??? ?????. 5. PHP? ?? ??? ??? ??? ??? ?? ?? ??? ?????. ?? ????? PHP? ?? ???? ?? ?? ?? ??? ??? ?????.

AI? ??? ??? ?? ?? ? ?? ???? ????? ?? ??? ??????. 1. Baidu, Tencent API ?? ?? ?? NLP ?????? ?? ??? AI ?? ?? API? ??????. 2. PHP? ? ?? guzzle? ?? API? ???? ?? ??? ??????. 3. ?? ????? ?? ?? ??? ???? ???? ???? ??? ??? ? ????. 4. ?? ?? ? ?? ???? ?? PHP-L ? PHP_CODESNIFFER? ??????. 5. ???? ????? ???? ?? ?? ??? ?????? ??? ??????. AIAPI? ??? ? ???, ?? ??, ?? ? PHP ?? ??? ??? ???. ?? ???? PSR ??? ???, ??? ????? ????, ?? ??? ???, ????? ??? ????, X? ???????.

1. ?? ???? ??? ??? ?????? ?? ?? ??? ??, ??? ?? ???? ??? (? : ?? ???, ? ? ??), ?? ??? ?? ???? ???? ? ?? ?? ??? ??? ?? ??? ????????. 2. ?? ??? ??? ?? ? ??? ???? ?? ?? ?? ???? ?? ? ?? AUDIT ?? ??? ??? ? ????? ????? ??? ???????. 3. ?? ?? ??? ?? ??? ???????. Recaptchav3 ???? ??, ??? ?? ?? ?? ?? ??, IP ? ?? ??? ??? ??? ?? ???? ??? ?? ??? ????? ??? ???? ????? ??? ?????.

PHP? AI ??? ??? ?? ????? ??? API? ?? ?????. ??? ??? ????? ? ??? ???? ?????. API ??? ?? ?? ??? ???? ??? ??? ???? ???? ? ????. 2. ?? ?? ???? guzzle ?? curl? ???? HTTP ??? ???, JSON ??? ??? ? ???, API ? ?? ??, ??? ? ?? ??? ???? ??, ??? ?? ?? ? ? ?? ????, ??? ?? ? ?????? ?????. 3. ???? ???? ?? ???? API ??, ?? ? ??? ?? ??, ??? ?? ??, ?? ?? ? ??? ??? ??? ?????. ?? ??? ??? ??? ? ??? ???? Propt ?? ? ?? ?? ??, ??? ?? ? ?? ????, ?? ?? ?? ???? ? ??? ?? ? ???? ????? ?????.

PHP? ?????? ????? ?? ?? ?? ???? ???? ?? ???? ???? ?? ?? ???? ?????. 2. ?? ??? ???? ???? ?? ??? ?? ? ??? ??? ???? ?? API/Webhook ??? ??? ?? ???? ??? ??? ??? ??? ?????. 3. ?? ????? ?? ??, ??/???? ????, ???? ??, ???? ? ??? ?????? ????? ?? ??? ???? ???? ?? Dingtalk, SMS ?? ??? ???? ??? ?????? ???? ?? ? ??? ??? ????? ?? ??? ???? ???????.

PhpisstillRelevantinmodernenterpriseenvironments.1. Modernphp (7.xand8.x)? ??? ??, ??? ??, jitcompilation ? modernsyntax, mateitsuilableforlarge-scalepplications

??? AI ?? ?? ???? ???? PHPSDK? ??????. 2. PHP? ???? FFMPEG? ???? ???? API ?? ?? (? : WAV)?? ?????. 3. ??? ???? ????? ????? API ???? ??? ??????. 4. NLP ??? ???? JSON ??? ???? ???? ?????. 5. ?? ??? ???? ???? ?? ?? ?? ?? ?? ??? ?????. ?? ????? ?? ?? ? ??? ???? ?? ??? ???, ??? ?? ? ??? ???????.
