gpt4 book ai didi

java - Rally:Java:无法向测试用例添加标签

转载 作者:太空宇宙 更新时间:2023-11-04 07:56:14 25 4
gpt4 key购买 nike

大约一个月前,我编写了一个脚本,它可以成功创建标签并将它们添加到测试用例中。但在过去的几天里,脚本无法向测试用例添加标签,但它仍然能够创建标签。这是我写的源代码:

    //Looks for a specific tag
public static void ChkTag(RallyRestApi r, String tagname) throws IOException{
boolean tagfound = false;
QueryRequest alltags = new QueryRequest("Tag");
QueryResponse resp = r.query(alltags);
if(resp.wasSuccessful()){
//System.out.println("query for all tags was successful.");
for(JsonElement result : resp.getResults()){
JsonObject temp = result.getAsJsonObject();
if(temp.get("Name").getAsString().equals(tagname)){
tagfound =true;
}
}
if(tagfound==false){
System.out.println("Tag for this testcase is missing..creating now...");
ExportTCtoRally_adk.createTag(r, tagname);
}
}
}

public static void createTag(RallyRestApi r, String name) throws IOException{
//Create Tag
JsonObject mytag = new JsonObject();
mytag.addProperty("Name", name);
CreateRequest mytagc = new CreateRequest("Tag", mytag);
CreateResponse mytagcc = r.create(mytagc);
String ref_tag = Ref.getRelativeRef(mytagcc.getObject().get("_ref").getAsString());

if(mytagcc.wasSuccessful())
System.out.println("Tag successfully created.");
return;
}

然后在创建测试用例时我运行以下代码:

//-----------------FOR TAGS----------------------
boolean tagfound = false;
if (creating1.wasSuccessful()){
System.out.println("testcase created.");
QueryRequest alltags = new QueryRequest("Tag");
QueryResponse resp = r.query(alltags);
JsonElement out = null;
if(resp.wasSuccessful()){
System.out.println("query for all tags was successful.");
for(JsonElement result : resp.getResults()){
JsonObject temp = result.getAsJsonObject();
if(temp.get("Name").getAsString().equals(tagx)){
System.out.println("desired tag found.");
tagfound=true;
out=result;
}
}
if(tagfound==false){
System.out.println("Tag wasn't found.");
ExportTCtoRally_adk.createTag(r, tagx);
System.out.println("New Tag created.");
}
JsonArray tiger = new JsonArray();
tiger.add(out);

System.out.println("Updating testcase tags...");
JsonObject updatedtesttag = new JsonObject();
updatedtesttag.add("Tags", tiger);

UpdateRequest updatetag = new UpdateRequest(ref_testcase, updatedtesttag);
UpdateResponse updatetagresp = r.update(updatetag);

if(updatetagresp.wasSuccessful())
System.out.println("Tag succeccfully added to the test case");
}
//-----------------------------------------------

我知道有些东西在这里运行了两次,但由于它不会造成任何问题,所以我就这样保留了它。

所以我的问题是我的代码有什么问题吗?

谢谢。

最佳答案

您的工作区中现在是否有超过一页 (200) 的标签? (您可以通过查看响应中的 getTotalResultCount() 进行检查)。默认情况下查询只会返回一页数据。只需添加一个过滤器来按名称搜索标签可能会更有效:

QueryRequest alltags = new QueryRequest("Tag");
alltags.setQueryFilter(new QueryFilter("Name", "=", tagx);
QueryResponse resp = r.query(alltags);
if(resp.wasSuccessful() && resp.getResults().size() == 1) {
//tag is at index 0 in results
}

关于java - Rally:Java:无法向测试用例添加标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13586791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com