#java #web-services #rally
#java #веб-сервисы #rally
Вопрос:
У меня есть следующий Java-код (ниже) для обновления моего тестового примера. Я хочу обновить три поля в моем тестовом примере. Эти три поля — проект, тестовая папка и Заметки. Код, пока он работает, обновляет только поля Project и Notes. Поле тестовой папки остается неизменным. Какие изменения мне нужно внести, чтобы обновить поле моей тестовой папки? Спасибо
import com.google.gson.JsonObject;
import com.rallydev.rest.RallyRestApi;
import com.rallydev.rest.request.CreateRequest;
import com.rallydev.rest.request.UpdateRequest;
import com.rallydev.rest.response.CreateResponse;
import com.rallydev.rest.response.UpdateResponse;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.rallydev.rest.RallyRestApi;
import com.rallydev.rest.request.CreateRequest;
import com.rallydev.rest.request.DeleteRequest;
import com.rallydev.rest.request.GetRequest;
import com.rallydev.rest.request.QueryRequest;
import com.rallydev.rest.request.UpdateRequest;
import com.rallydev.rest.response.CreateResponse;
import com.rallydev.rest.response.DeleteResponse;
import com.rallydev.rest.response.GetResponse;
import com.rallydev.rest.response.QueryResponse;
import com.rallydev.rest.response.UpdateResponse;
import com.rallydev.rest.util.Fetch;
import com.rallydev.rest.util.QueryFilter;
import com.rallydev.rest.util.Ref;
import com.rallydev.rest.util.Ref;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import com.rallydev.rest.RallyRestApi;
public class TestCaseUpdate {
// TODO Auto-generated constructor stub
public static void main(String[] args) throws URISyntaxException, IOException {
String host = "https://rally1.rallydev.com";
String username = "username@company.com";
String password = "secret";
String wsapiVersion = "v2.0";
String projectRef = "/project/387xxxx.js";
String tfRef = "/testfolder/198xxx.js";
//String tfRef = "/testfolders/198xxx.js";
String applicationName = "RestExample_createTFandTC";
RallyRestApi restApi = new RallyRestApi(
new URI(host),
username,
password);
restApi.setWsapiVersion(wsapiVersion);
restApi.setApplicationName(applicationName);
JsonObject tcUpdate = new JsonObject();
tcUpdate.addProperty("Notes", "Fixed3");
tcUpdate.addProperty("Project", projectRef);
tcUpdate.addProperty("Test Folder", tfRef);
UpdateRequest updateRequest = new UpdateRequest("/testcase/186xxx.js", tcUpdate);
UpdateResponse updateResponse = restApi.update(updateRequest);
if (updateResponse.wasSuccessful()) {
System.out.println("Successfully updated test case: ");
} else {
System.out.println("Error");
}
}
}
Ответ №1:
Использовать TestFolder
, без пробела:
tcUpdate.addProperty("TestFolder", tfRef);
Вы можете проверить объектную модель WS API, чтобы убедиться, что имена объектов написаны точно так, как на них ссылается WS API.
Нет необходимости добавлять .js. Конечные точки WS API версии 2.0 не требуют .js, потому что это единственный поддерживаемый формат (больше нет xml).
String tfRef = "/testfolder/1234";
Обратите внимание, что тестовые папки нельзя перемещать из одного проекта в другой: они принадлежат проекту, в котором они были созданы. Тестовый пример можно перемещать из одного проекта в другой в пределах одной рабочей области. Это означает, что ваша ссылка на проект должна указывать на проект, в котором находится тестовая папка. В пользовательском интерфейсе, если тестовый пример находится в тестовой папке TF1 внутри проекта P1, и если пользователь пытается переместить тестовый пример в другой проект, P2, появится эта ошибка: The selected Test Folder is not in the "P2" Project; the Test Folder must be in the same Project as this Test Case or the Parent Project.