摘要:用于實現(xiàn)單例類,避免多次申請賬號密碼是否覆蓋原會話獲取的接口登錄的接口請求并返回結(jié)果新建會話獲取成功登錄成功根據(jù)獲取需求列表并沒有依賴太多的庫,只用了常用的和模塊,調(diào)用的接口是從源碼中找到的。
最近有用到開源版的禪道系統(tǒng),版本10.0,為了更方便地獲取禪道信息,我參照官方的說明寫了禪道api調(diào)用的腳本。由于網(wǎng)上能搜到的博客基本沒有,我就把自己的成果分享一下。在此申明,此文章內(nèi)容是我自己原創(chuàng),并不涉及公司機密,同時請各位請尊重我的勞動成果。
廢話不多說,直接上代碼再解釋吧。
import requests import json class Zentao_cli(object): session = None #用于實現(xiàn)單例類,避免多次申請sessionID sid = None def __init__(self, url, account, password, override = False): self.url = url self.account = account #賬號 self.password = password #密碼 self.session_override = override #是否覆蓋原會話 self.pages = { "sid": "/index.php?m=api&f=getSessionID&t=json", #獲取sid的接口 "login": "/index.php?t=json&m=user&f=login&account={0}&password={1}&sid={2}", #登錄的接口 "get_story_list_by_projectID": "/index.php?t=json&m=story&f=ajaxGetProjectStories&projectID={0}", "get_story_list_by_account": "/index.php?" } self.s = None self.sid = None def req(self,url): #請求并返回結(jié)果 web = self.s.get(url) if web.status_code == 200: resp = json.loads(web.content) if resp.get("status") == "success": return True, resp else: return False, resp def login(self): if self.s is None: if not self.session_override and Zentao_cli.session is not None: self.s = Zentao_cli.session self.sid = Zentao_cli.sid else: #新建會話 self.s = requests.session() res, resp = self.req(self.url.rstrip("/") + self.pages["sid"]) if res: print("獲取sessionID成功") self.sid = json.loads(resp["data"])["sessionID"] Zentao_cli.sid = self.sid login_res, login_resp = self.req(self.url.rstrip("/") + self.pages["login"].format(self.account, self.password, self.sid)) if login_res: print("登錄成功") Zentao_cli.session = self.s def get_story_list_by_projectID(self, projectID): #根據(jù)projectID獲取需求列表 req_url = self.url.rstrip("/") + self.pages["get_story_list_by_projectID"].format(str(projectID)) web = self.s.get(req_url) if web.status_code == 200: resp = json.loads(web.content.decode()) for k,v in resp.items(): print(k,v) if __name__ == "__main__": cli = Zentao_cli("http://192.168.xx.xx/zentao", "xxxxxx", "xxxxxx123") cli.login() cli.get_story_list_by_projectID(17)
并沒有依賴太多的庫,只用了常用的requests和json模塊,api調(diào)用的接口是從源碼中找到的。類初始化的時候只需要傳入禪道地址,帳號名,密碼,然后調(diào)用獲取的方法就行了。如果要做更多的操作,比如獲取bug列表,提交bug,提交需求,就需要與源碼中的函數(shù)一一對應(yīng)寫函數(shù)傳參數(shù)進行交互。
如果本文章對您有用別忘了點個贊,加收藏。如果想要更多的函數(shù)實現(xiàn),請在評論區(qū)艾特我,或者私信我,另外歡迎找我交流。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42742.html
目錄 一、禪道 一、測試工具背景 二、測試管理工具 三、測試工具介紹 四、禪道介紹 五、禪道操作 7. 創(chuàng)建發(fā)布 8. 測試團隊 二、缺陷報告 三、測試報告 一、概要 二、測試過程 三、缺陷分析 四、測試總結(jié) 四、接口測試以及用例編寫 五、Fiddler 好文推薦 一、禪道 一、測試工具背景 當(dāng)測試環(huán)境搭建完成后,測試人員將在自己搭建的環(huán)境上執(zhí)行測試用例,開展測試工作。測試人員在執(zhí)行測試用例的過...
摘要:引言禪道的使用在其手冊中有比較詳細的介紹,大家可以參考其中還包括介紹的視頻。應(yīng)用范圍禪道主要應(yīng)用于軟件項目的管理。軟件完整使用其支持的流程主要按照敏捷開發(fā)的流程支持的。擴展機制,幾乎可以對禪道的任何地方進行擴展。 ...
摘要:但這并不意味著敏捷開發(fā)完全拋棄文檔,敏捷開發(fā)遵循輕文檔,重溝通的原則。把功能點拆分,導(dǎo)入到項目管理軟件中,相關(guān)人員只需要按照需求目錄一條條執(zhí)行即可,不再需要一頁一頁的看了。如今的任務(wù)看板和燃盡圖已經(jīng)由實物形式轉(zhuǎn)變?yōu)轫椖抗芾碥浖? 我們比較熟知的軟件項目管理方法是瀑布。其基本流程是需求-> 設(shè)計->開發(fā)->測試。基本假設(shè)只要把每一個環(huán)節(jié)都做正確,那么最終得到的結(jié)果也是正確的。瀑布開發(fā)有非...
摘要:新公司使用禪道作管理系統(tǒng)。每次產(chǎn)品上線的時候,所有的測試人員測試出之就就提在禪道上。避免本頁跳轉(zhuǎn)導(dǎo)致腳本失效。并給它綁定事件。很多瀏覽器插件,其實也是在別人的網(wǎng)站上運行自己的腳本實現(xiàn)一些操作。 新公司使用禪道作bug管理系統(tǒng)。每次產(chǎn)品上線的時候,所有的測試人員測試出bug之就就提在禪道上。由于我們公司目前的測試只有一個,就把很多產(chǎn)品拉來湊數(shù)。他們分不清bug和需求。所以往往出現(xiàn)的情況是...
閱讀 1268·2023-04-26 01:38
閱讀 1469·2021-11-15 11:39
閱讀 3259·2021-09-22 15:43
閱讀 2653·2019-08-30 15:55
閱讀 2057·2019-08-30 14:17
閱讀 2859·2019-08-29 14:16
閱讀 3071·2019-08-26 18:36
閱讀 2616·2019-08-26 12:19