2015-11-09 123 views
0

我試圖使用Codeception來測試我的SOAP API調用,但我遇到了一些問題。 當試圖通過haveSoapHeader()方法我得到傳遞AUTH頭:Codeception SOAP API測試:實體異常中文檔末尾的額外內容

[PHPUnit_Framework_Exception] DOMDocument::loadXML(): Extra content at the end of the document in Entity, line: 2 

api.suite.yml

class_name: ApiTester 
modules: 
    enabled: 
     - \Helper\Api 
     - PhpBrowser 
     - SOAP 
    config: 
     PhpBrowser: 
      url: 'http://localhost' 
     SOAP: 
      depends: PhpBrowser 
      endpoint: http://localhost:888/soap 

testCallCept.php

$I = new ApiTester($scenario); 
$I->wantTo('perform actions and see result'); 
$I->haveSoapHeader(
    'authenticate', 
    array(
     'username' => 'test', 
     'password' => 'test' 
    ) 
); 

$I->sendSoapRequest('testCall'); 

在調試模式下運行此測試我得到如下:

C:\xampp\htdocs\xyz>php codecept.phar run api -d 
Codeception PHP Testing Framework v2.1.3 
Powered by PHPUnit 4.8.10 by Sebastian Bergmann and contributors. 

←[1mApi Tests (1) ←[22m---------------------------------------------------------------------------------------------- 
Modules: ←[32m\Helper\Api, PhpBrowser, SOAP←[39m 
------------------------------------------------------------------------------------------------------------ 
←[35;1mPerform actions and see result←[39;22m (testCallCept) 
Scenario: 
* I have soap header "authenticate",{"username":"test","password":"test"} 
* I send soap request "test" 

←[36m [Request] <soapenv:Envelope xmlns:ns="" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">←[39m←[36m<authenticate>←[39m←[36m<username>←[39m←[36mtest←[39m←[36m</username>←[3 
9m←[36m<password>←[39m←[36mtest←[39m←[36m</password>←[39m←[36m</authenticate>←[39m←[36m</soapenv:Header><soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><ns:testCall></ns:testCall></soapenv:Body></soapenv:Envelope>←[39m 
←[36m [Response] <br /> 
    <font size='1'><table class='xdebug-error xe-warning' dir='ltr' border='1' cellspacing='0' cellpadding='1'> 
    ←[39m←[36m<tr>←[39m←[36m<th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>(!)←[39m←[36m</span>←[39m←[36m Warning: si←[39m 
←[37;41m ERROR ←[39;49m 

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
------------------------------------------------------------------------------------------------------------ 


Time: 554 ms, Memory: 9.50Mb 

There was 1 error: 

--------- 
1) Failed to perform actions and see result in ←[1mtestCallCept←[22m (tests\api\\testCallCept.php) 

←[37;41m                              ←[39;49m 
←[37;41m [PHPUnit_Framework_Exception] DOMDocument::loadXML(): Extra content at the end of the document in Entity, line: 2 ←[39;49m 
←[37;41m                              ←[39;49m 
←[33m 
Scenario Steps: 
←[39m 
←[1m 2. $I->sendSoapRequest("test")←[22m at ←[32mtests\api\testCallCept.php:14←[39m 
1. $I->haveSoapHeader("authenticate",{"username":"test","password":"test"}) at ←[32mtests\api\testCallCept.php:12←[39m 

#1 Codeception\Subscriber\ErrorHandler->errorHandler 
#2 Codeception\Module\SOAP->sendSoapRequest 
#3 C:\xampp\htdocs\xyz\tests\_support\_generated\ApiTesterActions.php:2067 
#4 C:\xampp\htdocs\xyz\tests\api\testCallCept.php:14 
#5 C:\xampp\htdocs\xyz\codecept.phar:7 

←[37;41mFAILURES!←[0m 
←[37;41mTests: 1←[0m←[37;41m, Assertions: 0←[0m←[37;41m, Errors: 1←[0m←[37;41m.←[0m 

我已搜查,這可能是它的問題,偶然發現了一個帖子說,當XML結構是無效的,但只要我能看到的結構是怎麼回事發生應該是這樣我真的不知道在哪裏看下。

任何人有任何想法可能是什麼問題?

+0

您在響應中獲得HTML。

Naktibalda

+0

檢查SOAP服務器的日誌並修復它。 – Naktibalda

+0

我想我現在看到問題出在哪裏。感謝@Naktibalda以正確的方式指引我。 – kn88

回答

0

我在SOAP服務器配置中發生了一個錯誤,從而得到了我最初沒有注意到的SOAP響應中的錯誤。

相關問題