Автоматизація тестування Web-сервісів, Частина 1: Створюємо Web-сервіс за допомогою IBM Rational Software Architect, Різне, Програмування, статті

Перед початком роботи


Про цю серії


Web-сервіси все частіше стають основними компонентами бізнес-додатків, а з появою парадигми сервіс-орієнтованої архітектури (Service-Oriented Architecture, SOA) інтерес до Web-сервісів зростає багаторазово. При створенні критично важливих сервіс-орієнтованих програм тестування Web-сервісів має величезну значимість. Швидке створення і розгортання складних Web-сервісів ставить нові завдання перед групою забезпечення якості. Автоматизація тестування Web-сервісів може допомогти групі ефективно управляти обсягом робіт.


Тестування Web-сервісів зазвичай включає наступні завдання:



  1. Генерування клієнтського або скелетного коду для Web-сервісу;
  2. Визначення вхідних даних тесту;
  3. Виклик Web-сервісу за допомогою клієнтського або скелетного коду;
  4. Звірка реального і очікуваного відгуку.

З усіх перерахованих дій найбільших зусиль потребують генерування клієнтського або скелетного коду та верифікація відгуку.


Для генерування скелетного коду для Web-сервісу на базі відповідного WSDL-файл існують різні інструменти, а проте згенерований код може бути приватним, можливо, його доведеться генерувати заново при кожній зміні WSDL. Одним з рішень даної проблеми може стати відмова від генерації клієнтського або скелетного коду і виклик Web-сервісу безпосередньо через загальний HTTP-клієнт. Далі в цій серії статей ми будемо розглядати один з таких наборів інструментів, наданий API Apache Commons HttpClient.


Верифікація відгуку зазвичай теж вимагає деякої частки ручного втручання, в залежності від складності вмісту відгуку. Якщо відгук містить прості елементи, то верифікація може бути простою, оскільки вона вимагає тільки перевірки значень цих елементів. Для відгуків, що містять велику кількість складних елементів, верифікація вручну може вимагати значних зусиль.


У цій серії розповідається про методи автоматизації тестування типового Web-сервісу за допомогою технологій JUnit, Apache Commons HttpClient (далі – HttpClient) і Apache XMLUnit (далі – XMLUnit). Методика демонструється на платформі розробки, яку пропонує IBM ® Rational ® Software Architect.


Серія складається з двох частин:



Про даному навчальному посібнику


Цей навчальний посібник є першу частину серії статей, присвячених автоматизації тестування типового Web-сервісу з використанням технологій JUnit, Apache Commons HttpClient і Apache XMLUnit. Ми описуємо кроки, які необхідно виконати для створення простого Web-сервісу за допомогою програми IBM Rational Software Architect, що пропонує повнофункціональний набір засобів в складі інтегрованої платформи розробки.


Цілі


У цьому навчальному посібнику ви дізнаєтеся, як створити і протестувати простий Web-сервіс за допомогою IBM Rational Software Architect.


Необхідні умови


Передбачається, що ви маєте базове уявлення про Web-сервісах і їх розробки на мові Java ™, а також певний досвід роботи з інструментальними засобами тестування модулів, а саме JUnit


Вимоги до системи


Ваша система повинна відповідати таким вимогам:


  1. Windows 98/2000/2003;
  2. IBM Rational Software Architect, версія 6.x.

Створюємо Web-сервіс


Навчальний сценарій


Ми створимо приклад Web-сервісу з одним методом, що повертає список користувачів. Для кожного користувача вказується прізвище та адресу. Щоб не ускладнювати завдання, ми створимо Web-сервіс, який буде повертати статичний список користувачів. В реальній ситуації цей список може бути отриманий з джерела даних, наприклад, з бази даних або з файлу.


XML-схема для користувача представлена ​​в лістингу 1.


Лістинг 1





<?xml version=”1.0″ encoding=”UTF-8″?>
<xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>
<xsd:element name=”user”>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=”name”/>
<xsd:element ref=”address”/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name=”street”>
<xsd:complexType/>
</xsd:element>
<xsd:element name=”address”>
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=”street”/>
<xsd:element ref=”city”/>
<xsd:element ref=”zip”/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name=”zip”>
<xsd:complexType/>
</xsd:element>
<xsd:element name=”name” type=”xsd:string”/>
<xsd:element name=”city”>
<xsd:complexType/>
</xsd:element></xsd:schema>

Щоб протестувати приклад Web-сервісу:


Наступні розділи ілюструють ці завдання.


Створюємо Web-сервіс


Перший крок – це створення Web-сервісу.



Рисунок 1. Створення динамічного Web-проекту
Рисунок 1. Створення динамічного Web-проекту


Рисунок 2. Ім’я динамічного Web-проекту
Рисунок 2. Ім


Рисунок 3. Представлення Web-проекту
Рисунок 3. Представлення Web-проекту



Рисунок 4. Java-пакет
Рисунок 4. Java-пакет


Лістинг 2. Address.java





package com.ibm.ws.sample;
public class Address
{
private String street;
private String city;
private String zip;
/ / Методи Getter
public String getStreet() { return street; }
public String getCity() { return city; }
public String getZip() { return zip; }
/ / Методи Setter
public void setStreet(String street) {this.street = street;}
public void setCity(String city) { this.city = city; }
public void setZip(String zip) { this.zip = zip; }
}

Лістинг 3. User.java





package com.ibm.ws.sample;

public class User
{
private String name;
private Address address;
/ / Методи Getter
public String getName() { return name; }
public Address getAddress() { return address; }
/ / Методи Setter
public void setName(String name) { this.name = name; }
public void setAddress(Address address) {this.address = address;}
}


Лістинг 4. Users.java





package com.ibm.ws.sample;
public class Users
{
/** * Повертає список всіх користувачів. * В реальній ситуації * Список може бути взятий з бази даних.
*
* @return User[]
*/
public User[] getUsers()
{
User[] users = new User[3];
users[0] = getUser(“John”,”Park Street”,”Washington”, “012345”);
users[1] = getUser(“Mohan”,”Avenue Street”, “Bangalore”, “456789”);
users[2] = getUser(“Mansoor”,”Martin Street”, “Bangalore”, “135791”);
return users;
}

/** * Повертає об’єкт User
*
* @param name
* @param street
* @param city
* @param zip
* @return User
*/
private User getUser(String name, String street, String city, String zip)
{
Address address = new Address();
address.setStreet(street);
address.setCity(city);
address.setZip(zip);
User user = new User();
user.setName(name);
user.setAddress(address);
return user;
}
}



Рисунок 5. Подання оглядача
Рисунок 5. Подання оглядача



Малюнок 6. Web-сервіси
Малюнок 6. Web-сервіси



Малюнок 7. Сторінка вибору об’єктів
Малюнок 7. Сторінка вибору об



Рисунок 8. Сторінка налаштування розгортання сервісу
Рисунок 8. Сторінка налаштування розгортання сервісу


Малюнок 9. Сторінка вибору інтерфейсу кінцевої точки сервісу
Малюнок 9. Сторінка вибору інтерфейсу кінцевої точки сервісу



Малюнок 10. Сторінка ідентифікації bean-компонента Java Web-сервісу
Малюнок 10. Сторінка ідентифікації bean-компонента Java Web-сервісу



Малюнок 11. Сторінка публікації Web-сервісу


Малюнок 12. Оглядач проектів
Малюнок 12. Оглядач проектів

Виконуємо розгортання Web-сервісу


Ми створили Web-сервіс, а тепер давайте розгорнемо додаток на сервері.



Малюнок 13. Команда Run on Server
Малюнок 13. Команда Run on Server



Малюнок 14. Сторінка визначення нового сервера
Малюнок 14. Сторінка визначення нового сервера



Малюнок 15. Сторінка додавання і видалення проектів
Малюнок 15. Сторінка додавання і видалення проектів



Тепер наше додаток буде розгорнуто на сервері. Перейдіть по URL localhost:9080/SampleProject/services/Users у вікні браузера і перевірте, чи виконується Web-сервіс.


Висновок


У цьому навчальному посібнику ми створили простий приклад Web-сервісу на платформі розробки, пропонованої набором інструментів Rational Software Architect. У частині 2 цієї серії ви буде розглянуто метод автоматизації тестування виведення Web-сервісу за допомогою API HttpClient і XMLUnit

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*