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

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

Azure DevOps Services Rest Api. 17. Добавление вложений и ошибок к результатам тестирования

Posted by Shamrai Alexander на 31 марта, 2019

Если тест провалился, то логично добавить какую-то дополнительную информацию (логи, дампы, скриншоты), которая будет полезна для анализа ситуации. Также для критических тестов можно «на лету» создавать ошибки, которые будут связаны с конкретным тестом и его результатом. Нижеприведенное основывается на статье Создание результатов тестирования для планов тестирования.

Создание и добавление ошибки

Создание рабочих элементов выполняется на основе следующих шагов: Создание и редактирование рабочих элементов. Существующую ошибку уже можно привязать к результатам тестового сценария. Для этого необходимо создать ссылку ShallowReference:

new Microsoft.TeamFoundation.TestManagement.WebApi.ShallowReference(bug.Id.ToString(), url: bug.Url)

Далее массив таких ссылок передается в текущий результат выполнения теста. Пример:

TestCaseResult testCaseResult = new TestCaseResult();

WorkItem bug = CreateWorkItem(TeamProjectName, «Bug», bugFields);

var bugs = new List<Microsoft.TeamFoundation.TestManagement.WebApi.ShallowReference>();

bugs.Add(new Microsoft.TeamFoundation.TestManagement.WebApi.ShallowReference(bug.Id.ToString(), url: bug.Url));

testCaseResult.AssociatedBugs = bugs;

Связанную ошибку можно увидеть в результатах тестирования:

Добавление вложений

Вложения можно добавить как к конкретному результату выполнения теста, так и ко всему тестовому запуску. Основой является модель вложения TestAttachmentRequestModel, которая включает в себя следующие основные элементы:

  1. Stream – строка в формате Base64, которая содержит будущее вложение.
  2. FileName – имя файла.

В решении примере модель вложения формируется на основе пути файла следующим образом:

static TestAttachmentRequestModel GetAttachmentModel(string path)

{

string[] pathArr = path.Split(new
char[] { ‘/’, ‘\\’ }, StringSplitOptions.RemoveEmptyEntries);

Byte[] bytes = File.ReadAllBytes(path);

return
new TestAttachmentRequestModel(Convert.ToBase64String(bytes), pathArr[pathArr.Length — 1]);

}

Далее созданная модель передается в результаты теста (через метод CreateTestResultAttachmentAsync) или в результаты тестового запуска (через метод CreateTestRunAttachmentAsync) клиента TestManagementHttpClient.

Пример добавления вложения к существующему результату теста из тестового запуска:

var definedTestResults = TestManagementClient.GetTestResultsAsync(TeamProjectName, testRun.Id).Result;

TestManagementClient.CreateTestResultAttachmentAsync(GetAttachmentModel(@»img\iconfinder_Insect-robot_131435.png»), TeamProjectName, testRun.Id, definedTestResults.ElementAt(0).Id).Wait();

Результат будет следующим:

Пример добавления вложения к тестовому запуску:

TestManagementClient.CreateTestRunAttachmentAsync(GetAttachmentModel(@»img\Screen_Shot_2018-01-16.jpg»), TeamProjectName, testRun.Id).Wait();

Результат этой операции:

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

https://github.com/ashamrai/TFRestApi/tree/master/17.TFRestApiAppRunTestsAddBugAttachment

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

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

Логотип WordPress.com

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

Google photo

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

Фотография Twitter

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

Фотография Facebook

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

Connecting to %s

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