zoukankan      html  css  js  c++  java
  • Testlink接口使用方法-python语言远程调用

     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'

  • 相关阅读:
    阿里巴巴电商搜索推荐实时数仓演进之路
    阿里云发布边缘计算视频上云解决方案 为海量视图处理提供城市级云基础设施
    MySQL设置所有IP地址都可以访问数据库
    HTML5中的data-*属性和jQuery中的.data()方法使用
    21. 合并两个有序链表 *****
    链表相交
    链表的中间节点
    剑指 Offer 24. 反转链表 *****
    从尾到头打印链表
    返回倒数第k个节点
  • 原文地址:https://www.cnblogs.com/betnorth/p/5489054.html
Copyright © 2011-2022 走看看