betnorth
 1 deepin@deepin-pc:~/test$ cat libclienttestlink.py 
 2 #!/usr/bin/env python3
 3 # -*- coding: utf-8 -*-
 4 
 5 #! /usr/bin/python
 6 #
 7 # Testlink API Sample Python 3.1.2 getProjects() - Client implementation
 8 # 
 9 import xmlrpc.client
10 
11 class TestlinkAPIClient:        
12     # substitute your server URL Here
13     SERVER_URL = "https://******************************/xmlrpc.php"
14       
15     def __init__(self):
16         self.server = xmlrpc.client.ServerProxy(self.SERVER_URL)
17         self.devKey = "your user key"
18 
19     def getInfo(self):
20         return self.server.tl.about()
21 
22     def getProjects(self):
23         return self.server.tl.getProjects(dict(devKey=self.devKey))
24 
25     def getClientTL(self):
26         return self.server.tl
27 
28 client = TestlinkAPIClient()
29 tlclient = client.getClientTL()
30 
31 args = {}
32 args["devKey"] = client.devKey
33 args["testplanname"] = "pythontest"
34 args["testprojectname"] = "LSTest"
35 
36 client = TestlinkAPIClient()
37 tlclient = client.getClientTL()
38 
39 print(client.getInfo())
40 print("-" * 80)
41 print(tlclient.getTestPlanByName(args))

把代码中变量设置为本地环境后就可以实现远程调用Testlink了。

 

输出结果:

1 deepin@deepin-pc:~/test$ python3 libclienttestlink.py 
2  Testlink API Version: 1.0 initially written by Asiel Brumfield
3  with contributions by TestLink development Team
4 --------------------------------------------------------------------------------
5 [{\'name\': \'pythontest\', \'is_public\': \'1\', \'testproject_id\': \'56567\', \'notes\': \'\', \'is_open\': \'1\', \'id\': \'56582\', \'api_key\': \'c48e5b0e375c13c847b4148fcf4e283615619e52b427c11ff023e4a7d9b78bd1\', \'active\': \'1\'}]
6 deepin@deepin-pc:~/test$

 

未完待续

Testlink源代码链接:

https://github.com/TestLinkOpenSourceTRMS/testlink-code/blob/5bb8e574ecc4adca5664437ee3a80c9e8d7c434d/lib/api/xmlrpc/v1/xmlrpc.class.php

\'tl.reportTCResult\' => \'this:reportTCResult\',
\'tl.setTestCaseExecutionResult\' => \'this:reportTCResult\',
\'tl.createBuild\' => \'this:createBuild\',
\'tl.createPlatform\' => \'this:createPlatform\',
\'tl.createTestCase\' => \'this:createTestCase\',
\'tl.createTestCaseSteps\' => \'this:createTestCaseSteps\',
\'tl.createTestPlan\' => \'this:createTestPlan\',
\'tl.createTestProject\' => \'this:createTestProject\',
\'tl.createTestSuite\' => \'this:createTestSuite\',
\'tl.deleteTestCaseSteps\' => \'this:deleteTestCaseSteps\',
\'tl.deleteTestPlan\' => \'this:deleteTestPlan\',
\'tl.deleteTestProject\' => \'this:deleteTestProject\',
\'tl.uploadExecutionAttachment\' => \'this:uploadExecutionAttachment\',
\'tl.uploadRequirementSpecificationAttachment\' => \'this:uploadRequirementSpecificationAttachment\',
\'tl.uploadRequirementAttachment\' => \'this:uploadRequirementAttachment\',
\'tl.uploadTestProjectAttachment\' => \'this:uploadTestProjectAttachment\',
\'tl.uploadTestSuiteAttachment\' => \'this:uploadTestSuiteAttachment\',
\'tl.uploadTestCaseAttachment\' => \'this:uploadTestCaseAttachment\',
\'tl.uploadAttachment\' => \'this:uploadAttachment\',
\'tl.assignRequirements\' => \'this:assignRequirements\',
\'tl.addTestCaseToTestPlan\' => \'this:addTestCaseToTestPlan\',
\'tl.addPlatformToTestPlan\' => \'this:addPlatformToTestPlan\',
\'tl.removePlatformFromTestPlan\' => \'this:removePlatformFromTestPlan\',
\'tl.getExecCountersByBuild\' => \'this:getExecCountersByBuild\',
\'tl.getIssueTrackerSystem\' => \'this:getIssueTrackerSystem\',
\'tl.getProjects\' => \'this:getProjects\',
\'tl.getProjectKeywords\' => \'this:getProjectKeywords\',
\'tl.getProjectTestPlans\' => \'this:getProjectTestPlans\',
\'tl.getTestCaseAssignedTester\' => \'this:getTestCaseAssignedTester\',
\'tl.getTestCaseBugs\' => \'this:getTestCaseBugs\',
\'tl.getTestCaseKeywords\' => \'this:getTestCaseKeywords\',
\'tl.getTestProjectByName\' => \'this:getTestProjectByName\',
\'tl.getTestPlanByName\' => \'this:getTestPlanByName\',
\'tl.getTestPlanPlatforms\' => \'this:getTestPlanPlatforms\',
\'tl.getTotalsForTestPlan\' => \'this:getTotalsForTestPlan\',
\'tl.getBuildsForTestPlan\' => \'this:getBuildsForTestPlan\',
\'tl.getLatestBuildForTestPlan\' => \'this:getLatestBuildForTestPlan\',
\'tl.getLastExecutionResult\' => \'this:getLastExecutionResult\',
\'tl.getTestSuitesForTestPlan\' => \'this:getTestSuitesForTestPlan\',
\'tl.getTestSuitesForTestSuite\' => \'this:getTestSuitesForTestSuite\',
\'tl.getTestCasesForTestSuite\' => \'this:getTestCasesForTestSuite\',
\'tl.getTestCasesForTestPlan\' => \'this:getTestCasesForTestPlan\',
\'tl.getTestCaseIDByName\' => \'this:getTestCaseIDByName\',
\'tl.getTestCaseCustomFieldDesignValue\' => \'this:getTestCaseCustomFieldDesignValue\',
\'tl.getTestCaseCustomFieldExecutionValue\' => \'this:getTestCaseCustomFieldExecutionValue\',
\'tl.getTestCaseCustomFieldTestPlanDesignValue\' => \'this:getTestCaseCustomFieldTestPlanDesignValue\',
\'tl.getTestSuiteCustomFieldDesignValue\' => \'this:getTestSuiteCustomFieldDesignValue\',
\'tl.getTestPlanCustomFieldDesignValue\' => \'this:getTestPlanCustomFieldDesignValue\',
\'tl.getReqSpecCustomFieldDesignValue\' => \'this:getReqSpecCustomFieldDesignValue\',
\'tl.getRequirementCustomFieldDesignValue\' => \'this:getRequirementCustomFieldDesignValue\',
\'tl.getFirstLevelTestSuitesForTestProject\' => \'this:getFirstLevelTestSuitesForTestProject\',
\'tl.getTestCaseAttachments\' => \'this:getTestCaseAttachments\',
\'tl.getTestCase\' => \'this:getTestCase\',
\'tl.getFullPath\' => \'this:getFullPath\',
\'tl.getTestSuiteByID\' => \'this:getTestSuiteByID\',
\'tl.getUserByLogin\' => \'this:getUserByLogin\',
\'tl.getUserByID\' => \'this:getUserByID\',
\'tl.deleteExecution\' => \'this:deleteExecution\',
\'tl.doesUserExist\' => \'this:doesUserExist\',
\'tl.updateTestCaseCustomFieldDesignValue\' => \'this:updateTestCaseCustomFieldDesignValue\',
\'tl.updateTestCase\' => \'this:updateTestCase\',
\'tl.setTestCaseExecutionType\' => \'this:setTestCaseExecutionType\',
\'tl.assignTestCaseExecutionTask\' => \'this:assignTestCaseExecutionTask\',
\'tl.unassignTestCaseExecutionTask\' => \'this:unassignTestCaseExecutionTask\',
\'tl.addTestCaseKeywords\' => \'this:addTestCaseKeywords\',
\'tl.removeTestCaseKeywords\' => \'this:removeTestCaseKeywords\',
\'tl.updateTestSuiteCustomFieldDesignValue\' => \'this:updateTestSuiteCustomFieldDesignValue\',
\'tl.getTestSuite\' => \'this:getTestSuite\',
\'tl.checkDevKey\' => \'this:checkDevKey\',
\'tl.about\' => \'this:about\',
\'tl.testLinkVersion\' => \'this:testLinkVersion\',
\'tl.setTestMode\' => \'this:setTestMode\',
\'tl.ping\' => \'this:sayHello\',
\'tl.sayHello\' => \'this:sayHello\',
\'tl.repeat\' => \'this:repeat\'

 

分类:

技术点:

相关文章: