亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                怎樣讓腳本發(fā)現(xiàn)問(wèn)題自動(dòng)在jira記錄bug

                前提:bug記錄為JIRA

                自動(dòng)化腳本跑完后,如果發(fā)現(xiàn)問(wèn)題,再用手工把問(wèn)題錄入jira,這樣是不是覺(jué)得自動(dòng)化做得還不夠徹底?下面講的是如何聯(lián)通jira。


                首先測(cè)試用例中需要帶有開(kāi)發(fā)名稱和測(cè)試人員名稱(對(duì)應(yīng)jira內(nèi)的名稱)。

                測(cè)試結(jié)果數(shù)據(jù)和人員名稱聚合。

                如果有重試機(jī)制,重試完成最后再統(tǒng)一錄入jira。

                jira有開(kāi)放的api,分兩種:

              1. java rest api — 以java依賴包的方式調(diào)用 點(diǎn)擊查看:https://developer.atlassian.com/server/jira/platform/java-apis/,api doc: https://docs.atlassian.com/software/jira/docs/api/8.22.3/。pom添加如下
              2. com.atlassian.jira jira-api ${atlassian.product.version} provided

                2 . rest api — 通過(guò)網(wǎng)絡(luò)調(diào)用,地址:https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-group-issues

                調(diào)用jira前需要獲取token

                使用 java包時(shí)需要先調(diào)用auth 獲取token

                使用api時(shí),首先要獲取authentication,它支持 OAuth2.0 這里可以用簡(jiǎn)單的basic auth 通過(guò)鑒權(quán),這種方式可以直接調(diào)用所需的接口,不需要再次獲取token,如果jira配置不支持這種鑒權(quán)方式,就需要在jira中配置token 官網(wǎng)地址:。https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/#Tokens-de-API

                basic auth 使用:

                curl -D- -X GET -H “Authorization: Basic ZnJlZDpmcmVk” -H “Content-Type: application/json” “https://your-domain.atlassian.net/rest/api/2/issue/QA-31”

                第三行 basic 后的字符串是,用戶名:密碼的base64字符。

                有的網(wǎng)絡(luò)使用統(tǒng)一的登錄授權(quán)方式,對(duì)于這種,使用java包的話需要重寫(xiě) authentication的頭信息,把獲取的token代入進(jìn)去。而調(diào)用rest api的方式同樣要在請(qǐng)求頭加入統(tǒng)一系統(tǒng)的token。

                說(shuō)下新建bug

                jira新建bug,也就是 issue的 接口地址:POST /rest/api/2/issue

                請(qǐng)求格式:

                { “update”: { “worklog”: [ { “add”: { “timeSpent”: “60m”, “started”: “2019-07-05T11:05:00.000+0000” } } ] }, “fields”: { “summary”: “Main order flow broken”, “parent”: { “key”: “PROJ-123” }, “issuetype”: { “id”: “10000” }, “components”: [ { “id”: “10000” } ], “customfield_20000”: “06/Jul/19 3:25 PM”, “customfield_40000”: “Occurs on all orders”, “customfield_70000”: [ “jira-administrators”, “jira-software-users” ], “project”: { “id”: “10000” }, “description”: “Order entry fails when selecting supplier.”, “reporter”: { “id”: “5b10a2844c20165700ede21g” }, “fixVersions”: [ { “id”: “10001” } ], “customfield_10000”: “09/Jun/19”, “priority”: { “id”: “20000” }, “labels”: [ “bugfix”, “blitz_test” ], “timetracking”: { “remainingEstimate”: “5”, “originalEstimate”: “10” }, “customfield_30000”: [ “10000”, “10002” ], “customfield_80000”: { “value”: “red” }, “security”: { “id”: “10000” }, “environment”: “UAT”, “versions”: [ { “id”: “10000” } ], “duedate”: “2019-03-11”, “customfield_60000”: “jira-software-users”, “customfield_50000”: “Could impact day-to-day work.”, “assignee”: { “id”: “5b109f2e9729b51b54dc274d” } }}// 涉及到的id 可以在腳本中做個(gè)名稱和id的字典方便匹配//reporter 是報(bào)告人,一般對(duì)應(yīng)測(cè)試人員的id//assignee 是之給誰(shuí),一般是開(kāi)發(fā)人員//customfield_xxxx 字段是jira設(shè)置的自定義字段//建立后回應(yīng)如下:{ “id”: “10000”, “key”: “ED-24”, “self”: “https://your-domain.atlassian.net/rest/api/2/issue/10000”, “transition”: { “status”: 200, “errorCollection”: { “errorMessages”: [], “errors”: {} } }}

                把相應(yīng)的 id 收集后,自動(dòng)發(fā)送郵件,郵件中用 上方selft的地址把id逐個(gè)拼起來(lái)就是bug的瀏覽地址,方便人員點(diǎn)擊查看。

                bug的修改,刪除請(qǐng)求用法見(jiàn)地址:https://developer.atlassian.com/cloud/jira/platform/rest/v2/api-group-issues/#api-group-issues

                jira大部分查詢用的Jql 語(yǔ)法,使用方法:

                例如

                var bodyData = `{ “queries”: [ “summary ~ test AND (labels in (urgent, blocker) OR lastCommentedBy = currentUser()) AND status CHANGED AFTER startOfMonth(-1M) ORDER BY updated DESC”, “invalid query”, “summary = test”, “summary in test”, “project = INVALID”, “universe = 42” ]}`;const response = await api.asApp().requestJira(route`/rest/api/2/jql/parse`, { method: ‘POST’, headers: { ‘Accept’: ‘application/json’, ‘Content-Type’: ‘application/json’ }, body: bodyData});console.log(`Response: ${response.status} ${response.statusText}`);console.log(await response.json());//“AND (labels in (urgent, blocker) OR lastCommentedBy = currentUser()) AND status CHANGED AFTER startOfMonth(-1M) ORDER BY updated DESC ” //上一行這部分條件可以在jira網(wǎng)頁(yè)地址中調(diào)試成功再寫(xiě)入代碼。


                除了上面這些,還能做些什么?

                • 使用查詢可以獲取項(xiàng)目的issue數(shù)量,人員數(shù)量,類別,從而可以自定義報(bào)表,分析軟件哪部分缺陷多,缺陷類型是哪些
                • 多項(xiàng)目中共有字段可以通過(guò)腳本一鍵同步建立
                • 定時(shí)更新issue或項(xiàng)目狀態(tài),發(fā)布進(jìn)度提醒
                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年6月14日 12:33
                下一篇 2022年6月14日 12:33

                相關(guān)推薦

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息