Pengujian Magento 2 API
Saya telah membuat API dan saya ingin menulis file uji untuk API itu. Bagaimana itu bisa dilakukan di Magento 2.3.5? Saya telah merujuk tautan -https://devdocs.magento.com/guides/v2.4/get-started/web-api-functional-testing.htmldan juga melihat video oleh Pengembang Magento Rusia yang terkenal. Saya tidak dapat menjalankan tes dan ini adalah kesalahan yang saya dapatkan jika saya menjalankan tes.
Perintah yang saya jalankan dari direktori root Magento saya adalah
vendor/bin/phpunit --config dev/tests/api-functional/phpunit_rest.xml
Kesalahannya adalah:
Tidak dapat membaca "dev / tests / api-functional / phpunit_rest.xml".
Selain itu, di PHPStorm, saya tidak dapat mengkonfigurasi versi Uji Unit. Saya mendapatkan kesalahan ini.
Jika saya menggunakan autoloader.php, saya mendapatkan error berikut:
Ketika saya menjalankan perintah berikut, saya mendapatkan kesalahan ini.
vendor/phpunit/phpunit/phpunit app/code/<Directory>
Saya butuh bantuan dalam menyiapkan pengujian API di PHPStorm dan kode kerja yang benar untuk menguji API POST
Bantuan apa pun sangat dihargai.
Jawaban
Langkah 1: Verifikasi ekstensi SOAP PHP diinstal -> di bagian atas index.php yang digunakan untuk melayani situs Magento, ganti baris pertama <?phpdengan <?php phpinfo(); die();Dan segarkan situs, periksa ekstensi PHH_SOAP muncul sesuai gambar di bawah
Langkah 2: sesuai dokumentasi devdocs Salin /dev/tests/api-functional/phpunit_rest.xml.dist dan phpunit_soap.xml.dist ke /dev/tests/api-functional/phpunit_rest.xml dan phpunit_soap.xml.
Langkah 3: buat pengguna API Pergi ke System/Integration, tambahkan pengguna API dan tetapkan semua peran (setidaknya pada awalnya hingga panggilan pertama dibuat)
Validasi langkah-langkah di atas dengan menjalankan panggilan API Magento default di Postman untuk isntance. Atau menggunakan script php seperti di bawah ini (garis pembawa harus disesuaikan dengan 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);
hasil dari script ini akan seperti screenshot di bawah ini:
Langkah 4:
Copy /dev/tests/api-functional/config/install-config-mysql.php.dist to /dev/tests/api-functional/config/install-config-mysql.php.
ganti detail database Anda dan host dengan detail sistem Anda.
Langkah 5: Terakhir untuk mengatur PHPStorm, jika pengaturan xdebug Anda berfungsi untuk penjelajahan halaman web umum, maka baris perintah untuk kunci webapi seharusnya berfungsi:
bagi saya, saya mengalami kesalahan yang sama seperti Anda pada awalnya. Saya harus mengubah baris perintah
php vendor/bin/phpunit --config dev/tests/api-functional/phpunit_rest.xml
dengan
php vendor/bin/phpunit --config /data/macbook/mage-cert2/dev/tests/api-functional/phpunit_rest.xml
Dan kemudian, API saya akhirnya berjalan, lihat hasilnya di tangkapan layar di bawah ini: