Тестирование сервисов

Подскажите инструмент для тестирования сервисов.
Цель я отправляю запрос о регистрация пользователя user777.
Сервис пришлет мне ответ о регистрации данного юзера
я повторно отправляю зарегай мне user777, мне придет ответ, такой уже есть,
И именно это должен буду проверить.

И все в таком духе, какие инструменты существуют? Особенно интересует интеграция с Jenkins что бы все происходило в автоматическом режиме.

Посмотрите в сторону SoapUI - это, так сказать, инструмент.
Или пишите тесты, например, на java, использующие отправку необходимых вам запросов.

1 лайк

Может Charles чем - то поможет.

Сервис умеет отдавать Json и HTTP
быстро просмотрев Soap UI понял что он с ними не умеет нормально работать а лишь с XML, в связи с чем вопрос, если умеет все таки адекватно работать то подскажите с чего начать можно видео или лекции каке нибудь.

А возможно есть и лучше инструменты.
UPD все таки я думаю с Charles мне будет трудновато его дружить с дженкисном

Можно просто на Java через HttpClient отправлять нужные запросы, им же получать response, расковыривать его и через JUnit\TestNG делать нужные assert’ы

При чем здесь Charles ? Charles, Fiddler, HttpScoop, WireShark и т.д. это инструменты для снифинга и/или отладки запросов.
По поводу SoapUI, к сожалению, ничем вам помочь не могу - я не с ним не работал. Можно поискать в сети про json и SoapUI (например, одна из первых линок Are you for a hot cup?: Asserting JSON in soapUI)
Проще всего с Дженкинс - это написать свои тесты и парсить ответы, например, на java, используя HttpURLConnection или Apache HttpClient (или писать на python).
Вряд ли вы подружете хорошо какой-то инструмент с Дженкинсом (если вообще это толково можно сделать без каких-либо костылей и т.п.)

Можно написать простенький рест клиент, используя, к примеру, Jersey.

Маленький пример, насколько легко отправлять запросы:

	private Client client;
	private WebTarget service;

	public RemoteScreen(final String ip, final int port)
	{
		client = ClientBuilder.newBuilder()
				.register(ObjectMapperProvider.class)
				.register(JacksonFeature.class)
                .build();

		service = client.target("http://" + ip + ":" + port + "/sikuli");
	}

	public boolean click(final IImageElement image, final int timeout)
	{
		return service.path("image")
				.path("click")
				.queryParam("timeout", timeout)
				.request(MediaType.APPLICATION_JSON)
				.post(Entity.json(image))
				.getStatus() == Response.Status.OK.getStatusCode();
	}

SoapUI, разумеется, умеет работать с REST. Его можно автоматизировать через его SDK, а также запускать с коммандлайна.

1 лайк

Вы можно сказать сами ответили в каком вам направлении искать: если приложение отдает Json и HTTP, то какие могут быть проблемы, используйте рест клиент, или же используйте либу которая работает с REST.

Для Ruby используйте: GitHub - rest-client/rest-client: Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.

1 лайк

ага спасибо посмотрим и в эту сторону

Проблема никто из нас тестировщиков не знает Ruby только Java

Не суть важно какой язык, я вам привел аналогию, что бы показать прям пальцем, то вот: http://harryjoy.com/2012/09/08/simple-rest-client-in-java/

1 лайк

Спасибо за наводку!

Я бы еще посмотрел в сторону Robot Framework + RequestsLibrary. Очень просто и быстро можно написать тесты.

На SoapUI через встроенный груви json вообще не проблема обработать. С HTTP он и сам позволяет.

Мы используем REST-Assured для тестироавния веб сервисов. Очень удобная и гибкая штука: