PowerShell调用jira rest api实现jira统计自动化
2016-04-21 20:54
519 查看
通过调用JIRA Rest web api实现统计自动化,首先进行登录模拟:
然后查询所有分派给我的任务,并遍历每个任务取出想要的信息(例如:报告人、开发、前端、Jira创建时间等信息):
以上过程中也包含了PowerShell应用于web接口测试的核心方法!
$content = @{username='用户名';password='密码'} $JSON=$content|convertto-JSON -Compress $res = Invoke-WebRequest -Uri "http://jira地址/rest/auth/1/session" -Method Post -Body $JSON -ContentType application/json $webClient = new-object net.webclient #Set encoding style here. $webClient.Encoding=[System.Text.Encoding]::GetEncoding("utf-8") <# Note that the response contains the Set-Cookie HTTP headers that must be honoured by the caller. If you are using a cookie-aware HTTP client then it will handle all Set-Cookie headers automatically. This is important because setting the JSESSIONID cookie alone may not be sufficient for the authentication to work. #> $webClient.Headers.add("Cookie", $res.Headers["Set-Cookie"]) #Write-Host "调用获取登录状态接口" -ForegroundColor Green #$webClient.DownloadString("http://jira地址/rest/auth/1/session") #Write-Host "调用退出登录接口" -ForegroundColor Green #$webClient.UploadString("http://jira地址/rest/auth/1/session","DELETE","") #Write-Host "调用获取登录状态接口" -ForegroundColor Green #$webClient.DownloadString("http://jira地址/rest/auth/1/session")
然后查询所有分派给我的任务,并遍历每个任务取出想要的信息(例如:报告人、开发、前端、Jira创建时间等信息):
$jiraUri = "jira地址" #查询所有分派给天外归云的任务 #Search using search request.通过查找接口用jql语句来进行查找(首先要创建一个JSON对象做为查找时post的body) #在PowerShell中创建JSON对象. $JSON = @" { "jql": "分派给 = 天外归云", "startAt": 0, "maxResults": 1000, "fields": [ "summary", "status", "assignee" ] } "@ $apiUri = "/rest/api/2/search" $uri = $jiraUri+$apiUri #Post json必须加的header. $webClient.Headers.Add("Content-Type", "application/json"); $searchResult = $webClient.UploadString($uri,$JSON) #获取所有的issues(分派给天外归云的) $issues = ($searchResult|ConvertFrom-Json).issues #判断有没有这种field function NullOrNot($field){ if(($field -ne $null) -and ($field -ne "")) { $field }else{ $field="displayName : Null" } } #提取人员名单 function GetDisplayName($oName){ $displayNames = $oName|findstr "displayName" if($displayNames.count -ne 1){ foreach($displayName in $displayNames){ $newDisplayName += $displayName.split(":")[1] $newDisplayName += " " } $newDisplayName }else{ $displayNames.split(":")[1] } } #遍历jira issue foreach($issue in $issues){ $apiUri = $jiraUri+"/rest/api/2/issue/"+$issue.key $issueInfo = $webClient.DownloadString($apiUri) $issueInfo = $issueInfo|ConvertFrom-Json #$issueInfo.fields $reporter = GetDisplayName(NullOrNot($issueInfo.fields.reporter)) Write-Host "报告人:"$reporter $productor = GetDisplayName(NullOrNot($issueInfo.fields.customfield_10206)) Write-Host "产品人员:"$productor $qianDuan = GetDisplayName(NullOrNot($issueInfo.fields.customfield_10207)) Write-Host "前端:"$qianDuan $developer = GetDisplayName(NullOrNot($issueInfo.fields.customfield_10208)) Write-Host "开发:"$developer $fenPai = GetDisplayName(NullOrNot($issueInfo.fields.customfield_10002)) Write-Host "分派给:"$fenPai $tiCeTime = $issueInfo.fields.created Write-Host "提测时间:"$tiCeTime Write-Host "用例数据:"$issueInfo.fields.customfield_11402 $issueInfo.fields.customfield_10400 Write-Host "bug数:"$issueInfo.fields.customfield_10202 Read-Host }
以上过程中也包含了PowerShell应用于web接口测试的核心方法!
相关文章推荐
- 巴什博奕(Bash Game)
- shell脚本的字符串截取
- 51Nod-1066-Bash游戏
- shell脚本与或非
- A. Shell Game
- HBase总结(二十)HBase常用shell命令详细说明
- Writing a Windows Shell Extension(marco cantu的博客)
- shell编程——if语句 if -z -n -f -eq -ne -lt
- Shell编写
- Shell图形界面dialog应用详解
- Shell脚本的几种字符串子串获取
- shell 分析 nginx 日志统计
- 使用 adb shell 进行App性能采样分析及监控的思路
- shell基本字符串处理2
- shell合并文件去重
- shell命令
- 通过shell命令测试app性能
- Linux Shell脚本编程--cut命令
- Linux Shell脚本编程--Linux特殊符号大全
- Linux Shell脚本编程--Uniq命令