IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  SOA и Web-сервисы | Open source  >

Автоматизация тестирования Web-сервисов: Часть 2. Тестируем Web-сервис при помощи XMLUnit

Изучаем методику автоматизации с использованием платформы разработки IBM Rational Software Architect

developerWorks
На предыдущую страницуСтраница 4 из 8 На предыдущую страницу

Опции документа

Обсудить


Выскажите мнение об этом учебном пособии

Помогите нам улучшить содержание


Верификация теста при помощи XMLUnit

В предыдущем разделе мы создали тест Junit для вызова Web-сервиса и получения отклика. Теперь мы изменим этот тест Juniit, чтобы сохранить реальный отклик от Web-сервиса в файл, а затем сравнить его с ожидаемым откликом при помощи API XMLUnit.

  1. Добавьте в путь сборки проекта файл xmlunit1.0.jar;
  2. Измените тестовый метод JUnit, добавив к коду листинга 5 код, выделенный голубым шрифтом;









    Листинг 5. Сравнение откликов
                                
      
      package com.ibm.ws.sample.test;
      
      import java.io.File;
      import java.io.FileInputStream;
      import java.io.FileNotFoundException;
      import java.io.FileOutputStream;
      import java.io.InputStreamReader;
      import java.io.OutputStreamWriter;
      import java.io.Reader;
      import junit.framework.TestCase;
      import org.custommonkey.xmlunit.Diff;
      import org.custommonkey.xmlunit.XMLAssert;
      import org.custommonkey.xmlunit.XMLUnit;
      
      public class SampleTest extends TestCase 
      {  
        public void test() throws FileNotFoundException, Exception  
        {    
          // URL Web-сервиса   
          final String wsURL = "http://localhost:9080/
          SampleProject/services/Users";		    
          
          // Запрос XML-пути    
          final String requestXMLPath = "C:/wssample/request.xml";      
          
          // Ожидаемый путь отклика    
          final String expectedXMLPath = "C:/wssample/expected_response.xml";		    
          
          // Реальный путь отклика    
          final String actualXMLPath = "C:/wssample/actual_response.xml";	    
          
          // Кодировка     
          final String encoding = "UTF-8";		    
          
          // Вызов Web-сервиса    
          String webServiceResponse = SampleHttpClient.invokeWebService
          (wsURL,requestXMLPath);
          
          // Сохраняем отклик на диск    
          File responseFile = new File(actualXMLPath);    
          responseFile.createNewFile();    
          OutputStreamWriter oSW = new OutputStreamWriter
          (new FileOutputStream(responseFile),encoding); 
          oSW.write(webServiceResponse);	    
          oSW.flush();    
          oSW.close();    
          
          // Сравнение откликов    
          Reader expectedXMLReader = new InputStreamReader
          (new FileInputStream(expectedXMLPath), encoding);    
          Reader actualXMLReader = new InputStreamReader
          (new FileInputStream(actualXMLPath), encoding);    
          
          // Игнорируем пробелы при сравнении    
          XMLUnit.setIgnoreWhitespace(true);		    
          
          // Diff-объект, содержащий различия, если таковые имеются    
          Diff xmlDiff = new Diff(expectedXMLReader, actualXMLReader);		    
          
          // значение "false" игнорирует порядок пользователей в  XML-файле    
          XMLAssert.assertXMLEqual(xmlDiff,false);  
        }
    }
      

  3. Сохраните и скомпонуйте проект;
  4. Нажмите правой кнопкой мыши на SampleTest.java и выполните его с помощью JUnit;
  5. В консоли Junit мы видим текст зеленого цвета; это значит, что тест прошел успешно (см. рисунок 8);

    Рисунок 8. Консоль JUnit


  6. Теперь измените порядок пользователей в ожидаемом отклике и снова запустите тест. Откройте ожидаемый отклик в формате XML в C:\wssample\expected_response.xml;
  7. Измените порядок пользователей в соответствии с листингом 6;

    6. Новый порядок пользователей
                                Листинг
      <?xml version="1.0" encoding="UTF-8" ?>
      <SOAP-ENV:Envelope 
        xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
        xmlns:q0="http://sample.ws.ibm.com" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        
        <SOAP-ENV:Body>
          <getUsersReturn>  
          <User>    
            <name>Mohan</name>   
            <address>    
              <street>Avenue Street</street>     
              <city>Bangalore</city>     
              <zip>456789</zip>     
            </address>    
          </User>  
          <User>    
            <name>Mansoor</name>   
            <address>    
              <street>Martin Street</street>     
              <city>Bangalore</city>     
              <zip>135791</zip>     
            </address>    
          </User>  
          <User>  
            <name>John</name>   
            <address>    
              <street>Park Street</street>     
              <city>Washington</city>     
              <zip>012345</zip>     
            </address>    
          </User>    
          </getUsersReturn>      
        </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
      

  8. Сохраните файл и снова выполните тест. Он снова должен завершиться успешно.


В начало



На предыдущую страницуСтраница 4 из 8 На предыдущую страницу

    IBM в России Конфиденциальность Контакты