使用REST API更新执行情况ID/计划ID的执行状态



我有Zephyr相关查询,如何通过使用REST API使用测试用例ID来更新测试用例的执行状态。
我在下面的链接中提到了文章
https://support.getzephyr.com/hc/en-us/articles/205042055-Sample-rest-api-pitate-execution-execution-secution-status-secution-status-of-a-testcase-java-
在此示例中,他们显示了如何使用计划ID更新执行状态,但是实现在SOAP中,我们需要使用REST API实现相同的操作。是否有直接REST API获得时间表ID?
另外,是否有直接的REST API使用测试用例ID更新测试案例的执行状态?如果是,您可以提供上述两种情况的示例吗?

预先感谢。

JIRA REST API中没有直接方法使用测试用例ID更新执行状态。但是,您可以使用以下自定义方法:

import java.util.HashMap;
import java.util.Map;
import org.apache.http.client.methods.HttpPost;
import org.apache.commons.io.IOUtils;
import org.codehaus.jettison.json.JSONObject;
import java.net.Proxy;
import java.net.HttpURLConnection;
import java.net.URL;
public class JiraAuthHeader {
    public static void main(String args[])
    {
        try {
            JiraAuthHeader jiraAuthHeaderObj= new JiraAuthHeader();
            System.out.println(" Create Execution method*********");
            int executionId= jiraAuthHeaderObj.createExecution(<project id>,<issue id>,<cycle id>);
             System.out.println(" Update Execution method*********");
             jiraAuthHeaderObj.updateExecution(executionId,"pass");

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public  String updateExecution(int executionId, String status) throws Exception {
        System.out.println("Executing execution with executionId " + executionId + " and status = " + status);
        String url = "https://jira.company.com/jira/rest/zapi/latest/execution/" + executionId + "/execute";
        //String url = "https://jira.company.com/jira/rest/zapi/latest/execution";
        String statusInReq = "";
        if (status.equalsIgnoreCase("pass")) {
            statusInReq = "1";
        } else if (status.equalsIgnoreCase("fail")) {
            statusInReq = "2";
        }
        // Create request body
        JSONObject obj = new JSONObject();
        obj.put("status", statusInReq);
        obj.put("comment", "through java");
        String requestBody = obj.toString();
        System.out.println("Request body: " + requestBody);
        HttpURLConnection conn
         = httpPut(url, null, null, obj.toString());
        System.out.println("HTTP response code: " + conn.getResponseCode());
        String response = getResponse(conn);
        System.out.println("HTTP response content: " + response);
        System.out.println("from HTTP response content fetch the execution id: " + response.substring(6, 12));
        return response;
    }

    public HttpURLConnection httpGet(String url, Map<String, String> requestHeaders, String queryString) throws Exception {
        System.out.println("Get request");
        if (queryString != null) {
            url += "?" + queryString;
        }
        if (requestHeaders == null) {
            requestHeaders = new HashMap<String, String>();
        }
        requestHeaders.put("Content-Type", "application/json");
        return openConnection(url, "GET", requestHeaders, null);
    }
    public HttpURLConnection httpPut(String url, Map<String, String> requestHeaders, String queryString, String requestContent) throws Exception {
        System.out.println("Put request");
        if (queryString != null) {
            url += "?" + queryString;
        }
         System.out.println(url);
        if (requestHeaders == null) {
            requestHeaders = new HashMap<String, String>();
        }
        requestHeaders.put("Content-Type", "application/json");
        return openConnection(url, "PUT", requestHeaders, requestContent);
    }
    public HttpURLConnection httpPost(String url, Map<String, String> requestHeaders, String queryString, String requestContent) throws Exception {
        System.out.println("Post request");
        if (queryString != null) {
            url += "?" + queryString;
        }
         System.out.println(url);
        if (requestHeaders == null) {
            requestHeaders = new HashMap<String, String>();
        }
        requestHeaders.put("Content-Type", "application/json");
        return openConnection(url, "POST", requestHeaders, requestContent);
    }
    private HttpURLConnection openConnection(String url, String requestMethod, Map<String, String> requestHeaders, String requestContent)
            throws Exception {
        boolean usingProxy = false;
        HttpURLConnection conn = null;
        if (usingProxy) {
            /*String[] proxyInfo = jiraIntegrationConfig.getProxyServer().split(":");
            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyInfo[0], Integer.valueOf(proxyInfo[1])));
            conn = (HttpURLConnection) new URL(url).openConnection(proxy);*/
        } else {
            conn = (HttpURLConnection) new URL(url).openConnection(Proxy.NO_PROXY);
            String auth = "ssing621" + ":" + "amex^123";
            auth = "Basic " + new String(new sun.misc.BASE64Encoder().encode(auth.getBytes()));
            conn.setRequestProperty("Authorization", auth);
            conn.setRequestMethod(requestMethod);
            if (requestHeaders != null && requestHeaders.size() > 0) {
                for (String key : requestHeaders.keySet()) {
                    conn.setRequestProperty(key, requestHeaders.get(key));
                }
            }
            if (requestContent != null) {
                conn.setDoOutput(true);
                conn.getOutputStream().write(requestContent.getBytes("UTF-8"));
            }

    }
        return conn;
    }
    private String getResponse(HttpURLConnection conn) throws Exception {
        String response;
        if (conn.getResponseCode() == 200 || conn.getResponseCode() == 201) {
            response = IOUtils.toString(conn.getInputStream());
            return response;
        } else {
            response = IOUtils.toString(conn.getErrorStream());
            throw new Exception(response);
        }
    }
    public int getIssueIdByKey(String issueKey) throws Exception {
        System.out.println("Getting issue ID for test: [" + issueKey + "]");
        String url = ("https://jira.company.com/jira/rest/api/2/issue/" + issueKey);
        HttpURLConnection conn = httpGet(url, null, null);
        String response = getResponse(conn);
        JSONObject resObj = new JSONObject(response);
        if (resObj.has("id")) {
            int issueId = resObj.getInt("id");
            System.out.println("Found issue ID: " + issueId);

            return issueId;
        }
        System.out.println("Could not find IssueId for test: [" + issueKey + "]");
        return 0;
    }
    public int createExecution(int projectId, int issueId, int cycleId) throws Exception {
        System.out.print("Creating execution for project Id " + projectId + " and issueId " + issueId);
        String url = ("https://jira.company.com/jira/rest/zapi/latest/execution");
        // Create request body
        JSONObject reqObj = new JSONObject();
        reqObj.put("issueId", issueId);
        reqObj.put("projectId", projectId);
        reqObj.put("cycleId", cycleId);
        String requestBody = reqObj.toString();
        System.out.println("Request body: " + requestBody);
        HttpURLConnection conn = httpPost(url, null, null, requestBody);
        System.out.println("HTTP response code: " + conn.getResponseCode());
        String response = getResponse(conn);
        System.out.println("HTTP response content: " + response);
        // Parse the Execution Id, and return it
        JSONObject resObj = new JSONObject(response);
        int executionId = Integer.valueOf(resObj.keys().next().toString());
        System.out.println("Creation done, execution ID: " + executionId);
        return executionId;
    }
}

相关内容

  • 没有找到相关文章

最新更新