Magento 2 API testi

Aug 25 2020

Bir API oluşturdum ve bu API için test dosyaları yazmak istiyorum. Magento 2.3.5'te nasıl yapılabilir? Bağlantıyı yönlendirdim -https://devdocs.magento.com/guides/v2.4/get-started/web-api-functional-testing.htmlve ayrıca ünlü bir Rus Magento Geliştiricisinin videosunu izledi. Testleri çalıştıramıyorum ve testi çalıştırdığımda aldığım hata bu.

Magento kök dizinimden çalıştırdığım komut

vendor/bin/phpunit --config dev/tests/api-functional/phpunit_rest.xml

Hata şudur:

"Dev / testler / api-fonksiyonel / phpunit_rest.xml" okunamadı.

Ayrıca PHPStorm'da Unit Test sürümünü yapılandıramıyorum. Bu hatayı alıyorum.

Autoloader.php'yi kullanırsam şu hatayı alıyorum:

Aşağıdaki komutu çalıştırdığımda bu hatayı alıyorum.

vendor/phpunit/phpunit/phpunit app/code/<Directory>

PHPStorm'da API testini ve bir POST API'sini test etmek için doğru çalışma kodunu kurma konusunda yardıma ihtiyacım var

Herhangi bir yardım çok takdir edilmektedir.

Yanıtlar

HerveTribouilloy Aug 30 2020 at 18:27

1. Adım: doğrulanana PHP SABUN uzantı yüklendiğinde -> Magento siteyi sunmak için kullanılır index.php üstündeki ilk satırı değiştirin <?phptarafından <?php phpinfo(); die();Ve ekran görüntüsü aşağıda başına site çek PHH_SOAP uzatma görünür yenilemek

Adım 2: devdocs belgelerine göre /dev/tests/api-functional/phpunit_rest.xml.dist ve phpunit_soap.xml.dist'i /dev/tests/api-functional/phpunit_rest.xml ve phpunit_soap.xml'e kopyalayın.

Adım 3: Bir API kullanıcısı oluşturun Şuraya gidin System/Integration, bir API kullanıcısı ekleyin ve tüm rolleri atayın (en azından başlangıçta ilk çağrı yapılana kadar)

Postman'da isnans için varsayılan bir Magento API çağrısı çalıştırarak yukarıdaki adımları doğrulayın. Veya aşağıdaki gibi bir php betiği kullanarak (taşıyıcı satırın ayarlanması gerekir 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);

bu komut dosyasının sonucu aşağıdaki ekran görüntüsü gibi olmalıdır:

4. Adım:

Copy /dev/tests/api-functional/config/install-config-mysql.php.dist to /dev/tests/api-functional/config/install-config-mysql.php.

veritabanı ayrıntılarınızı ve ana makinenizi sistem ayrıntılarınızla değiştirin.

Adım 5: Son olarak PHPStorm'u kurmak için, xdebug kurulumunuz genel web sayfası taraması için çalışıyorsa, webapi anahtarı için komut satırı çalışıyor olmalıdır:

benim için, başlangıçta seninle aynı hatayı yaptım. Komut satırını değiştirmem gerekiyor

php vendor/bin/phpunit --config dev/tests/api-functional/phpunit_rest.xml

ile

php vendor/bin/phpunit --config /data/macbook/mage-cert2/dev/tests/api-functional/phpunit_rest.xml

Ve sonra, API'm sonunda çalıştı, aşağıdaki ekran görüntüsündeki sonuca bakın: