Thử nghiệm API Magento 2
Tôi đã tạo một API và tôi muốn viết các tệp thử nghiệm cho API đó. Làm thế nào nó có thể được thực hiện trong Magento 2.3.5? Tôi đã giới thiệu liên kết -https://devdocs.magento.com/guides/v2.4/get-started/web-api-functional-testing.htmlvà cũng đã xem video của Nhà phát triển Magento nổi tiếng người Nga. Tôi không thể chạy thử nghiệm và đây là lỗi tôi gặp phải nếu tôi chạy thử nghiệm.
Lệnh tôi đã chạy từ thư mục gốc Magento của mình là
vendor/bin/phpunit --config dev/tests/api-functional/phpunit_rest.xml
Lỗi là:
Không thể đọc "dev / tests / api-functions / phpunit_rest.xml".
Ngoài ra, trong PHPStorm, tôi không thể định cấu hình phiên bản Unit Test. Tôi nhận được lỗi này.
Nếu tôi sử dụng autoloader.php, tôi gặp lỗi sau:
Khi tôi chạy lệnh sau, tôi gặp lỗi này.
vendor/phpunit/phpunit/phpunit app/code/<Directory>
Tôi cần trợ giúp trong việc thiết lập kiểm tra API trong PHPStorm và mã hoạt động chính xác để kiểm tra API POST
Bất kỳ sự trợ giúp nào cũng được đánh giá cao.
Trả lời
Bước 1: Phần mở rộng Verifiy PHP SOAP được cài đặt -> ở đầu index.php được sử dụng để phục vụ trang Magento, hãy thay thế dòng đầu tiên <?phpbằng <?php phpinfo(); die();Và làm mới trang web, kiểm tra phần mở rộng PHH_SOAP xuất hiện theo ảnh chụp màn hình bên dưới
Bước 2: theo tài liệu devdocs, Sao chép /dev/tests/api-f Chức năng/phpunit_rest.xml.dist và phpunit_soap.xml.dist vào /dev/tests/api-f Chức năng/phpunit_rest.xml và phpunit_soap.xml.
Bước 3: Tạo người dùng API Đi tới System/Integration, thêm người dùng API và chỉ định tất cả các vai trò (ít nhất là ban đầu cho đến khi cuộc gọi đầu tiên được thực hiện)
Xác thực các bước trên bằng cách chạy lệnh gọi API Magento mặc định trong Postman cho isntance. Hoặc sử dụng tập lệnh php như bên dưới (dòng mang phải được điều chỉnh bằng your token access key)
<?php
// \Magento\Webapi\Model\ServiceMetadata::getServicesConfig to debug the available webapi services
$params = ['order_id' => null]; foreach ($argv as $arg) { if (preg_match("%^--(.*?)=(.*?)$%", $arg, $m)) {
$params[$m[1]] = $m[2]; } } if (!$params['order_id'])
exit("Specify order id (as --order_id=_ID_ parameter)\n");
$orderId = (int)$params['order_id'];
$url = 'http://magecertif.test/index.php/rest/V1/orders/' . $orderId;
$ch = curl_init(); curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Authorization: Bearer 75koeeydi18xzclhmdib8ou65h9qk8cx' // this is the access token for the API user
)
);
//curl_setopt($ch,CURLOPT_POSTFIELDS, $str);
$result = curl_exec($ch);
curl_close($ch);
kết quả của tập lệnh này sẽ giống như ảnh chụp màn hình bên dưới:
Bước 4:
Copy /dev/tests/api-functional/config/install-config-mysql.php.dist to /dev/tests/api-functional/config/install-config-mysql.php.
thay thế chi tiết cơ sở dữ liệu và máy chủ lưu trữ bằng chi tiết hệ thống của bạn.
Bước 5: Cuối cùng để thiết lập PHPStorm, nếu thiết lập xdebug của bạn hoạt động để duyệt trang web chung, thì dòng lệnh cho khóa webapi sẽ hoạt động:
đối với tôi, tôi đã có cùng một lỗi như bạn ban đầu. Tôi phải thay đổi dòng lệnh
php vendor/bin/phpunit --config dev/tests/api-functional/phpunit_rest.xml
với
php vendor/bin/phpunit --config /data/macbook/mage-cert2/dev/tests/api-functional/phpunit_rest.xml
Và sau đó, API của tôi cuối cùng đã chạy, hãy xem kết quả trong ảnh chụp màn hình bên dưới: