Заметки консультанта

Шамрай Александр Владимирович

Azure DevOps Services Rest Api. 12. Просмотр содержимого плана тестирования

Posted by Shamrai Alexander на Февраль 14, 2019

<< Перейти в радел «Azure DevOps Services (TFS/VSTS) Rest Api»

Примечание: Устарело с версии 16.150.0-preview. Новые подходы описаны здесь.

Для работы с объектами тестирования используется клиент TestManagementHttpClient. В рамках планирования тестирования используются следующие основные объекты:

  1. План тестирования – класс TestPlan. Он содержит в основном информацию о названии, планируемых датах тестирования и т.д.
  2. Набор тестов – класс TestSuite. Содержит дочерние наборы, а также сценарии тестирования. Наборы тестов могут быть статическими, наборам для требований (т.е. ссылаются на конкретное требование) и динамическими (на основе запроса по рабочим элементам).
  3. Тестовый сценарий – класс SuiteTestCase. Содержит информацию о рабочем элементе тестового сценария, тестировщике и конфигурации для тестирования.

Для того, чтобы получить информацию о всех объектах тестирования, необходимо:

  1. Получить план тестирования.
  2. Получить его основной набор тестов. Т.к. план тестирования кроме того, что имеет объект, который описывает его свойства, для него также сразу создается корневой набор тестов, который уже отражает содержимое плана тестирования на первом уровне.
  3. Получить содержимое набора тестов, т.е. дочерние наборы тестов и тестовые сценарии.

Для получения тестового плана используется метод GetPlanByIdAsync с использованием имени командного проекта и идентификатора. Идентификатор можно увидеть через интерфейс:

Рисунок 1. Редактирование плана тестирование

Рисунок 2. Идентификатор плана тестирования

Набор планов тестирования с использованием имени командного проекта можно получить через метод GetPlansAsync, который вернет список List планов тестирования.

Пример получения плана тестирования и его свойств:

TestPlan testPlan = TestManagementClient.GetPlanByIdAsync(TeamProjectName, TestPlanId).Result;
Console.WriteLine(«Test Plan : {0} : {1} : {2}», testPlan.Id, testPlan.State, testPlan.Name);
Console.WriteLine(«Area Path : {0} : Iteration Path : {1}», testPlan.Area.Name, testPlan.Iteration);

Console.WriteLine(«Plan Dates : {0} — {1}», testPlan.StartDate.ToShortDateString(), testPlan.EndDate.ToShortDateString());

Набор тестов можно получить через метод GetTestSuiteByIdAsync, который использует наименование проекта, идентификатор плана тестирования и идентификатор набора тесто, а также признак необходимости получения информации о дочерних объектах. Корневой набор тестов можно получить из свойств плана тестирования testPlan.RootSuite.Id. При этом существует метод GetTestSuitesForPlanAsync, который позволяет получить наборы тестов без необходимости получения корневого набора, но в рамках примера для обеспечения единого подхода, он не используется. Пример получения набора тестов:

TestSuite suiteDetail = TestManagementClient.GetTestSuiteByIdAsync(TeamProjectName, PlanId, suiteId, 1).Result;
Console.WriteLine(«Test Suite : {0} : {1} : {2}», suiteDetail.Id, suiteDetail.State, suiteDetail.Name);
//Sute Types: StaticTestSuite, RequirementTestSuite, DynamicTestSuite

Console.WriteLine(«Suite Type : {0} : {1}», suiteDetail.SuiteType,

(suiteDetail.SuiteType == «StaticTestSuite») ? «» :

(suiteDetail.SuiteType == «DynamicTestSuite») ? «\nQuery: « + suiteDetail.QueryString : «Requirement ID « + suiteDetail.RequirementId.ToString());

if (suiteDetail.Parent == null) Console.WriteLine(«This is a root suite»);

Информация о дочерних наборах тестов находится в suiteDetail.Suites, а информация о наличии тестовых сценариев в suiteDetail.TestCaseCount.

Список тестов в наборе тестов можно получить через метод GetTestCasesAsync, который использует наименование проекта, идентификатор плана тестирования и идентификатор набора тестирования. Пример получения списка тестов и их рабочих элементов:

List<SuiteTestCase> testCases = TestManagementClient.GetTestCasesAsync(TeamProjectName, PlanId, suiteId).Result;
foreach(SuiteTestCase testCase in testCases)
{

int testId = 0;

if (!int.TryParse(testCase.Workitem.Id, out testId)) continue;


WorkItem wi = WitClient.GetWorkItemAsync(testId).Result;


Console.WriteLine(«Test: {0} — {1}», wi.Id, wi.Fields[«System.Title»].ToString());

foreach(var config in testCase.PointAssignments)


Console.WriteLine(«Run for: {0} : {1}», config.Tester.DisplayName, config.Configuration.Name);

}

Пример тестового приложения можно посмотреть здесь:

https://github.com/ashamrai/TFRestApi/tree/master/12.TFRestApiAppTestPlanDelails

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

 
%d такие блоггеры, как: