SoapUI Groovy スクリプトを使用して、ZAPI の JWT トークンを生成しました。
ノート :
ライブラリのバージョンは、lib フォルダー内の「commons-lang-2.6.jar」および「commons-codec-1.11.jar」である必要があります。
bin -> ext フォルダーに「jwt-generator.jar」と「zfj-cloud-rest-client-3.0.jar」を追加します。
jwt ジェネレーター
入力した API URL に固有の JWT トークンが作成されます。例:
文字列 createCycleUri = zephyrBaseUrl + "/public/rest/api/1.0/cycle";
jwt トークンを生成する前に、api HTTP メソッド タイプを指定します。
文字列 jwt = jwtGenerator.generateJWT("POST"、uri、expirationInSec);
サイトは常に ZAPI API に対して固定されています。これには JWT トークンが必要です。
https://prod-api.zephyr4jiracloud.com/connect
これはドキュメントに記載されています。
https://zfjcloud.docs.apiary.io/#
- 作成したサイト URL は、以下のドキュメントに記載されている JIRA API を使用する場合に使用されます。これには基本認証が必要です。
https://getzephyr.docs.apiary.io/#
例:
https://newapi.atlassian.net
グルーヴィー:
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import com.thed.zephyr.cloud.rest.ZFJCloudRestClient;
import com.thed.zephyr.cloud.rest.client.JwtGenerator;
def site = context.expand( '${#Project#Site}' )
def zapiAccessKey = context.expand( '${#Project#zapiAccessKey}' )
def secretID = context.expand( '${#Project#secretID}' )
def user = context.expand( '${#Project#user}' )
// Replace Zephyr BaseUrl with the <ZAPI_CLOUD_URL> shared with ZAPI Cloud Installation
String zephyrBaseUrl = site;
// zephyr accessKey , we can get from Addons >> zapi section
String accessKey = zapiAccessKey;
// zephyr secretKey , we can get from Addons >> zapi section
String secretKey = secretID;
// Jira UserName
String userName = user;
ZFJCloudRestClient client = ZFJCloudRestClient.restBuilder(zephyrBaseUrl, accessKey, secretKey, userName).build();
JwtGenerator jwtGenerator = client.getJwtGenerator();
// API to which the JWT token has to be generated
String createCycleUri = zephyrBaseUrl + "/public/rest/api/1.0/cycle";
URI uri = new URI(createCycleUri);
int expirationInSec = 3600;
String jwt = jwtGenerator.generateJWT("POST", uri, expirationInSec);
log.info "JWT Token : " + jwt
//Store token in property.
context.testCase.testSuite.project.setPropertyValue('JWT_Token', jwt)