Magento 2APIテスト

Aug 25 2020

APIを作成しましたが、そのAPIのテストファイルを作成したいと思います。Magento 2.3.5でどのように行うことができますか?リンクを参照しました-https://devdocs.magento.com/guides/v2.4/get-started/web-api-functional-testing.htmlまた、有名なロシアのMagento開発者によるビデオも見ました。テストを実行できません。これは、テストを実行した場合に発生するエラーです。

Magentoのルートディレクトリから実行したコマンドは次のとおりです。

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

エラーは次のとおりです。

「dev / tests / api-functional /phpunit_rest.xml」を読み取ることができませんでした。

また、PHPStormでは、単体テストのバージョンを構成できません。このエラーが発生します。

autoloader.phpを使用すると、次のエラーが発生します。

次のコマンドを実行すると、このエラーが発生します。

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

PHPStormでのAPIテストの設定と、POSTAPIをテストするための正しい作業コードの設定についてサポートが必要です

どんな助けでも大歓迎です。

回答

HerveTribouilloy Aug 30 2020 at 18:27

ステップ1: Verifiy PHP SOAP拡張機能がインストールされている- >、Magentoのサイトに役立つ最初の行を置き換えるために使用されるindex.phpをの上部にある<?phpことにより、<?php phpinfo(); die();そして、サイトを更新し、チェックPHH_SOAP拡張は、下のスクリーンショットあたりとして表示されます

ステップ2: devdocsのドキュメントに従って/dev/tests/api-functional/phpunit_rest.xml.distとphpunit_soap.xml.distを/dev/tests/api-functional/phpunit_rest.xmlとphpunit_soap.xmlにコピーします。

ステップ3: APIユーザーを作成するに移動しSystem/Integration、APIユーザーを追加して、すべての役割を割り当てます(少なくとも最初は最初の呼び出しが行われるまで)

PostmanでデフォルトのMagentoAPI呼び出しを実行して、上記の手順を検証します。または、以下のようなphpスクリプトを使用します(ベアラー行はで調整する必要があります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);

このスクリプトの結果は、以下のスクリーンショットのようになります。

ステップ4:

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

データベースの詳細とホストをシステムの詳細に置き換えます。

ステップ5:最後にPHPStormをセットアップするために、xdebugセットアップが一般的なWebページの閲覧で機能する場合、webapiキーのコマンドラインは機能しているはずです。

私にとって、私は最初にあなたと同じエラーを抱えていました。コマンドラインを変更する必要があります

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

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

そして、私のAPIが最終的に実行されました。以下のスクリーンショットの結果を参照してください。