TestLink XML-RPC Не удалось вызвать клиент xml-rpc

Я пытался использовать testLink(1.9.14 (Padawan)) xml-rpc в selenium JAVA(testNG) для автоматической синхронизации результатов теста с testlink. Я предоставил devkey и URL-адрес, которые я использовал для теста webdriverJS.

public static String DEVKEY = "e69035750c91d1775900f4ce16dbcfb5";
public static String URL ="http://computername:80/testlink/lib/api/xmlrpc/v1/xmlrpc.php";

Когда я запускал набор тестов, я всегда получал ошибку, например:

testlink.api.java.client.TestLinkAPIException: The call to the xml-rpc client failed.
    at testlink.api.java.client.TestLinkAPIClient.executeXmlRpcMethod(TestLinkAPIClient.java:1266)
    at testlink.api.java.client.TestLinkAPIClient.execXmlRpcMethodWithCache(TestLinkAPIClient.java:1195)
    at testlink.api.java.client.TestLinkAPIClient.getProjects(TestLinkAPIClient.java:726)
    at testlink.api.java.client.TestLinkAPIHelper.getProjectInfo(TestLinkAPIHelper.java:64)
    at testlink.api.java.client.TestLinkAPIHelper.getProjectID(TestLinkAPIHelper.java:48)
    at testlink.api.java.client.TestLinkAPIClient.reportTestCaseResult(TestLinkAPIClient.java:184)
    at rocket.aldon.almwp.test.reportResult(test.java:19)
    at rocket.aldon.almwp.test.Test1(test.java:39)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:643)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:820)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1128)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
    at org.testng.TestRunner.privateRun(TestRunner.java:782)
    at org.testng.TestRunner.run(TestRunner.java:632)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
    at org.testng.SuiteRunner.run(SuiteRunner.java:268)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
    at org.testng.TestNG.run(TestNG.java:1064)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:137)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:58)
Caused by: org.apache.xmlrpc.client.XmlRpcClientException: Failed to parse servers response: Expected methodResponse element, got br
    at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:177)
    at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:145)
    at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:94)
    at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:44)
    at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:53)
    at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:166)
    at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:157)
    at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:146)
    at testlink.api.java.client.TestLinkAPIClient.executeXmlRpcMethod(TestLinkAPIClient.java:1232)
    ... 31 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 7; Expected methodResponse element, got br
    at org.apache.xmlrpc.parser.XmlRpcResponseParser.startElement(XmlRpcResponseParser.java:98)
    at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
    at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:175)
    ... 39 more

Похоже, что соединение XML-RPC здесь не работает, из информации об отладке я мог видеть, что объект API имеет isConnected = false; Может ли кто-нибудь встретить это и найти для него решение? Баночки, которые я использую:

testlink-api-client-2.0.jar
selenium-java-2.52.0.zip
selenium-server-standalone-2.52.0.jar
xmlrpc-common-3.1-sources.jar
xmlrpc-common-3.1.jar
xmlrpc-client-3.1-sources.jar
xmlrpc-client-3.1.jar
commons-logging-1.1.jar
guice-3.0.jar
velocity-dep-1.4.jar
ws-commons-util.1.0.2.jar

Может ли кто-нибудь помочь в исследовании? Я google в течение долгого времени до сих пор не получить ясного пути.


person Boyka Zhu    schedule 13.06.2016    source источник
comment
Кстати, с ключом разработчика и URL-адресом я мог правильно построить соединение XML-RPC в моем тесте webdriverJS. Не знаете, почему в eclipse произошел сбой, проблема с версией jar?   -  person Boyka Zhu    schedule 13.06.2016


Ответы (1)


У меня есть следующая конфигурация, которая работает нормально.

Предварительное условие:

  • API автоматизации должен быть включен
  • Должны быть созданы тестовый проект, план тестирования, сборка и тестовый пример.
  • Ручной Pass/Fail должен работать

Пожалуйста, внесите следующие изменения и перезапустите службу Apache:

  1. Внесите изменения в соответствии с приведенными ниже строками в config.inc.php в папке Testlink:

    $tlCfg->exec_cfg->enable_test_automation = ENABLED;

    $tlCfg->api->enabled = TRUE;

  2. В папке C:\xampp\htdocs\testlink-1.9.15\lib\api\xmlrpc\v1 отредактируйте этот файл xmlrpc.php следующим образом:

    require_once("xmlrpc.class.php");

    define('XMLRPC_REQUEST', true);

    // Some browser-embedded clients send cookies. We don't want them. $_COOKIE = array();

    $GLOBALS['HTTP_RAW_POST_DATA'] = file_get_contents("php://input");

    $XMLRPCServer = new TestlinkXMLRPCServer();

Примечание. Просто замените вышеуказанные строки, если доступны какие-либо другие конфигурации. Не редактируйте больше ничего.

  1. После перезапуска службы Apache откройте Testlink и Открыть тестовый проект и включите Test Automation (API keys) в разделе «Управление проектами».

  2. Возьмите ключ API из настроек пользователя и используйте его как DEV_KEY

Пожалуйста, дайте мне знать, если какой-либо запрос.

person Sagar007    schedule 20.01.2017
comment
Спасибо за информацию. Я проверю это позже. - person Boyka Zhu; 10.02.2017