Беспроводные сети : Cisco Policy Suite for BNG

Автоматизируйте API со сценарием Groovy

20 октября 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Английский (21 апреля 2016) | Отзыв

Введение

Этот документ описывает, как создать soapUI запрос Интерфейса разработчиков приложения (API) и как создать soapUI Контрольный пример, что петли по Шагам теста, которые автоматизируют запросы API Комплекта политики Quantum (QPS).

Пример soapUI Контрольный пример в этой статье implementa Шаги теста, которые читают файл ID абонента и затем создают и передает querySubscriberRequst к QPS.

Внесенный Тони Пиной, специалистом службы технической поддержки Cisco.

Создайте soapUI Проект

Прежде чем вы начнете эту процедуру, установите soapUI приложение на вашем рабочем столе. Можно загрузить soapUI исполняемый файл установки от www.soapui.org.

Перед созданием запроса API или Контрольного примера, необходимо сначала создать soapUI проект. Вам нужны файл Языка описания веб-сервисов (WSDL) и файл Описания XML-схемы (XSD) для создания проекта. WSDL задает поддерживаемые API. Когда вы выполняете эти команды от Балансировщика загрузки (LB), можно обычно получать WSDL и XSD от QPS:

  • wget http://lbvip01:8080/ua/wsdl/UnifiedApi.wsdl
  • wget http://lbvip01:8080/ua/wsdl/UnifiedApi.xsd

Сохраните WSDL и XSD в том же каталоге на рабочем столе, где вы планируете запустить soapUI приложение.

Выполните эти шаги для создания soapUI проекта:

  1. Выберите File> New soapUI Project из soapUI окна:

  2. В Новом окне soapUI Project вводят имя для проекта в поле Project Name и вводят местоположение, где файл WSDL хранится в поле Initial WSDL/WADL. Закончив все действия, нажмите кнопку OK.

Создайте soapUI Запрос API

Выполните эти шаги для создания soapUI запроса API:

  1. Разверните soapUI проект, который вы создали для наблюдения API. Можно также развернуть один из API для наблюдения запроса.

    В данном примере расширен querySubscriberRequest:

  2. Откройте запрос для наблюдения окна запроса с XML, который формирует запрос. В Request окно редактируют http://IP-адрес к IP-адресу и порту. Это обычно - lbvip01 IP-адрес и порт, где вы хотите отправить запрос как показано в примере:

  3. Модифицируйте поля в XML с данными, которые вы хотите передать в вашем запросе. В данном примере запрос является querySubscriberRequest. Модифицируйте ID абонента для абонента, вы хотите сделать запрос и установить showDetailedInformatin в False:

  4. Нажмите зеленую Кнопку запуска наверху окна Request для выполнения запроса.

Создайте soapUI Контрольный пример

Эта процедура объясняет, как создать тестовый комплект, который может автоматизировать, когда API передаются QPS.

В процедуре данного примера петли тестового комплекта по списку ID абонента и затем используют те ID абонента в querySubscriberRequest, который она передает к QPS. Список ID абонента - каждый на отдельном канале в текстовом файле, названном subid.txt.

Выполните эти шаги для создания Тестового комплекта:

  1. В soapUI проекте вы создали, создайте новый Тестовый комплект. Щелкните правой кнопкой мыши на soapUI и выберите New TestSuite.

  2. Щелкните правой кнопкой мыши Тестовый комплект и выберите New TestCase.

  3. Щелкните правой кнопкой мыши Контрольный пример и выберите Add Step> Groovy Script для добавления шага теста Сценария Groovy. Назовите его Источником данных:

  4. В Файле источника данных вставляют этот код. Этот код читает файл C:/subid.txt, который содержит ID абонента на каждой линии:
    import com.eviware.soapui.support.XmlHolder def myTestCase = context.testCase 
    def counter,next,previous,sizeFile tickerEnumFile = new File("C:/subid.txt") //subscriber
    IDs sepearted by new line (CR). List lines = tickerEnumFile.readLines() size =
    lines.size.toInteger() propTestStep = myTestCase.getTestStepByName("Property - Looper")
    // get the Property TestStep propTestStep.setPropertyValue("Total", size.toString())
    counter = propTestStep.getPropertyValue("Count").toString() counter= counter.toInteger()
    next = (counter > size-2? 0: counter+1) tempValue = lines[counter]
    propTestStep.setPropertyValue("Value", tempValue) propTestStep.setPropertyValue
    ("Count", next.toString()) next++ log.info "Reading line : ${(counter+1)} /
    $lines.size"propTestStep.setPropertyValue("Next", next.toString()) log.info
    "Value '$tempValue' -- updated in $propTestStep.name" if (counter == size-1) {
    propTestStep.setPropertyValue("StopLoop", "T") log.info "Setting the stoploop property now..."}
    else if (counter==0) { def runner = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner
    (testRunner.testCase, null) propTestStep.setPropertyValue("StopLoop", "F") } else{
    propTestStep.setPropertyValue("StopLoop", "F") }
  5. Щелкните правой кнопкой мыши на Шаге теста и выберите Add Step> Properties, чтобы добавить шаг теста Свойства и назвать его Свойством - Выполняющий мертвую петлю летчик.

  6. Добавьте эти определяемые пользователем свойства шага теста Выполняющего мертвую петлю летчика:
    • Общее количество
    • Значение - В нашем примере это ожидание ID абонента читало из ID абонента файла
    • Количество
    • Затем
    • StopLoop

  7. Щелкните правой кнопкой мыши на Шаге теста и выберите Add Step> TestRequest, чтобы добавить Тестовый Шаг теста Запроса и выбрать запрос, который вы хотите вызвать:

    В данном примере используется querySubscriberRequest.

  8. В запросе код расширения заменяет значения поля того, чего вы сделали запрос. В данном примере? из SubscriberId =? в querySubscriberRequest заменен $ кода расширения {Свойство - Looper#Value} (soap_test_req_expansion_code):

    Свойство - Выполняющий мертвую петлю летчик является названием Свойства созданный на предыдущем этапе TestStep, и Значение считает ID текущего абонента считанным из файла ID абонента.

  9. Щелкните правой кнопкой мыши на Шаге теста и выберите Add Step> Groovy Script и назовите его Петлей Данных:

  10. Вставьте этот код в Петле Данных Сценария Groovy:
    def myTestCase = context.testCase
    def runner
    propTestStep = myTestCase.getTestStepByName("Property - Looper")
    endLoop = propTestStep.getPropertyValue("StopLoop").toString()
    if (endLoop.toString() == "T" || endLoop.toString()=="True"
    || endLoop.toString()=="true")
    {
    log.info ("Exit Groovy Data Source Looper")
    assert true
    }
    else
    {
    testRunner.gotoStepByName("Groovy Script - DataSource") //go to the DataSource
    }
  11. В процедуре данного примера добавлена задержка на 1000 мс между каждой петлей. Этот шаг не является обязательным.

    С задержкой существует теперь пять Шагов теста:

  12. Нажмите зеленую Кнопку запуска для выполнения этих пяти Шагов теста в окне TestCase. 


Document ID: 119011