2016-09-23 2 views
0

Я искал высоко и низко, пытаясь выяснить, как создать тестовый прогон с использованием REST API для ALM.Как добавить тестовый прогон к ALM с помощью REST API

Если кто-то нашел лучший способ, то мне бы очень хотелось его увидеть!

Только что понял это вчера вечером.

Я использовал инструмент под названием Почтальон, чтобы понять это.

Вот как получить свой идентификатор testcycl через API REST. Сначала перейдите на страницу тестовой лаборатории и создайте тестовый набор, а затем добавьте к нему тестовый пример (или несколько тестовых примеров). В сетке выполнения вы можете добавить столбцы для «Test ID» и «ID».

Test ID = тест-идентификатор

ID = тест-конфиг-идентификатор

Рядом с Лобного сетке есть еще одна кнопка под названием "Подробности". Если вы нажмете кнопку, вы можете найти Test Set ID.

Test Set ID = цикл-идентификатор

После того как вы цикла идентификатор и тест-идентификатор можно выполнить GET и вытащить всю запись для тестового набора, который будет включать в себя testcycl идентификатор.

GET https://SERVER/qcbin/rest/domains/DOMAIN/projects/PROJECT/test-instances?query= {цикл-ID [123]; тест-ID [4567]}

После того как вы эту информацию, вы получите обратно XML-с все детали испытания экземпляра включая testcycl идентификатор, хотя в xml он называется просто, «id».

Затем вы можете использовать это для создания тестового прогона, который создает тестовый прогон на странице тестовых прогонов, а также обновляет тестовый пример в тестовом наборе на странице тестовой лаборатории.

POST https://SERVER/qcbin/rest/domains/DOMAIN/projects/PROJECT/runs

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<Entity Type="run"> 
<Fields> 
<Field Name="test-config-id"><Value>8901</Value></Field> 
<Field Name="cycle-id"><Value>123</Value></Field> 
<Field Name="test-id"><Value>4567</Value></Field> 
<Field Name="testcycl-id"><Value>THIS IS THE VALUE THAT YOU RAN THE GET TO FIND</Value></Field> 
<Field Name="build-revision"><Value>1</Value></Field> 
<Field Name="name"><Value>MyRun</Value></Field> 
<Field Name="owner"><Value>johnsmith</Value></Field> 
<Field Name="status"><Value>Passed</Value></Field> 
<Field Name="subtype-id"><Value>hp.qc.run.external-test</Value></Field> 
<Field Name="duration"><Value>5</Value></Field> 
<Field Name="execution-date"><Value>2016-09-23</Value></Field> 
<Field Name="execution-time"><Value>08:01:07</Value></Field> 
<Field Name="status"><Value>Passed</Value></Field> 
</Fields> 
</Entity> 

удачи тем из вас, которые ищут для этого!

+0

Весь процесс, предложенный может быть легко автоматизирован и вы не будете иметь необходимость каждый раз проверять каждый параметр. В python может быть создан простой модуль. Модуль запроса поможет вам легко отправлять сообщения REST. Я бы определенно потратил некоторое время и автоматизировал эту часть :) иначе для большого проекта вы убьете себя! Хорошего дня! –

+1

Уже закодирован в Java и сделал его частью моей Selenium Automation Framework. Работает как чемпион и экономит так много времени. Главным моментом моего поста было помочь людям определить отношения в ALM, которые могут быть очень запутанными. –

+0

REST API очень надежный и стабильный, поэтому автоматизация действительно сэкономит много времени :-) Молодец! Я сделал то же самое в python. Хорошего дня. –

ответ

0

Самый простой способ добавить тестовый прогон к ALM с использованием REST API - это поставить полезную нагрузку со статусом в тестовый экземпляр. То, как я это сделал, - это автоматизация, которая изменяет статус моего тестового экземпляра на заблокированный, который автоматически генерирует новый модуль fast_run в тестовом режиме. Затем мой автоматический скрипт изменяет статус вновь созданного fast_run, который в конечном итоге изменяет статус тестового экземпляра, с которым он связан.

Вот Рубин (с Rest-клиентом и Nokogiri драгоценных камней) Код:

test_instances_url = "http://ALM-SERVER/qcbin/rest/domains/#{@alm_domain_name}/projects/#{@alm_project_name}/test-instances" 
    puts "Test Instance URL >> #{test_instances_url} " 
    @report.puts "Test Instance URL >> #{test_instances_url} " 
    test_instance_addition_doc = " 
    <Entity Type=\"test-instance\"> 
     <Fields> 
     <Field Name=\"order-id\"> 
      <Value>1</Value> 
     </Field> 
     <Field Name=\"test-id\"> 
      <Value>#{test_id}</Value> 
     </Field> 
     <Field Name=\"subtype-id\"> 
      <Value>hp.qc.test-instance.MANUAL</Value> 
     </Field> 
     <Field Name=\"cycle-id\"> 
      <Value>#{test_set_id}</Value> 
     </Field> 
     </Fields> 
    </Entity>" 

    puts "Test instance Addition XML >> #{test_instance_addition_doc} " 
    @report.puts "Test instance Addition XML >> #{test_instance_addition_doc} " 

    RestClient.post(URI.escape(test_instances_url), test_instance_addition_doc, :content_type => 'application/xml', :cookies => {:QCSession => @session_cookie, :LWSSO_COOKIE_KEY => @token}) 
    new_test_instances_url = "http://ALM-SERVER/qcbin/rest/domains/#{@alm_domain_name}/projects/#{@alm_project_name}/test-instances?query={cycle-id[#{test_set_id}]}" 
    puts "New Test Instances URL >> #{new_test_instances_url}" 
    @report.puts "New Test Instances URL >> #{new_test_instances_url}" 

    test_instance_id_doc = Nokogiri::XML(RestClient.get(URI.escape(new_test_instances_url), :cookies => {:QCSession => @session_cookie, :LWSSO_COOKIE_KEY => @token})) 
    test_instance_id = test_instance_id_doc.xpath("//Field[@Name='status']/Value[text()='No Run']/../preceding-sibling::Field[@Name='id']/Value").text 
    puts "Test Instance ID >> '#{test_instance_id}' " 
    @report.puts "Test Instance ID >> '#{test_instance_id}' " 

    new_test_instance_url = "http://ALM-SERVER/qcbin/rest/domains/#{@alm_domain_name}/projects/#{@alm_project_name}/test-instances/#{test_instance_id}" 
    test_instance_update_doc = "<Entity Type='test-instance'><Fields><Field Name='status'><Value>Blocked</Value></Field></Fields></Entity>" 
    RestClient.put(URI.escape(new_test_instance_url), test_instance_update_doc, :content_type => 'application/xml', :cookies => {:QCSession => @session_cookie, :LWSSO_COOKIE_KEY => @token}) 
    sleep(2) 
    runs_doc = Nokogiri::XML(RestClient.get(URI.escape("http://ALM-SERVER/qcbin/rest/domains/#{@alm_domain_name}/projects/#{@alm_project_name}/runs?query={cycle-id[#{test_set_id}]}"),:cookies => {:QCSession => @session_cookie, :LWSSO_COOKIE_KEY => @token})) 
    run_id = runs_doc.xpath("//Field[@Name='cycle-id']/Value[text()='#{test_set_id}']/../following-sibling::Field[@Name='id']/Value").last.text 
    puts "Run ID >> '#{run_id}' " 
    @report.puts "Run ID >> '#{run_id}' " 
+0

Было бы более полезно, если бы вы добавили некоторый код и \ или запросы, которые вы используете –

+0

Возможно, слишком поздно для ответа, но я сделал это с помощью Ruby с камнем Rest-Client, а не с Java, если вы хотите увидеть код Ruby , Я отправлю его – ayushk

Смежные вопросы