среда, 5 апреля 2017 г.

Users — на чем потестить SOAP и REST

Система Users

Используйте систему Users, если хотите попрактиковаться в тестировании, а негде. Там есть специально зашитые в код баги, интересный с точки зрения классов эквивалентности функционал и даже SOAP и REST-запросы!


Явки, пароли


Система — http://users.bugred.ru
Менеджер — manager@mail.ru / 1

WSDL — http://users.bugred.ru/tasks/soap/WrapperSoapServer.php?wsdl
REST —  http://users.bugred.ru/tasks/rest/list

Описание методов см ниже в ТЗ.

См также:
Как отправить SOAP-запрос в Soap Ui — видео

Тут будут ссылки на статьи, как вообще можно вызывать SOAP и REST, пока самостоятельно гуглим :)

Я как автор могу дропнуть базу в любой момент — учитывайте это. Если вдруг ваши данные пропадут, это нормально.



Откуда это и зачем


Исходно Users создавался как "побочный продукт" для курса «Техники и инструменты локализации багов».  У разработчика я попросила два сайта, которые должны были быть взаимосвязаны. Ведь на стыке двух программ больше всего багов. А как понять, кто виноват? В чьи логи смотреть, как отловить виноватого? Поэтому в основном сайте есть возможность зарегистрироваться через Users. Разумеется, она работает не всегда Wink ;) Это дает нам шанс поиследовать взаимосвязи в интеграции.

Вот, казалось бы, и все. Тогда что такое Юзерс? Ну, просто некий телефонный справочник. Но ведь аппетит приходит во время еды! Пока я писала требования, я вспоминала свои фриланс проекты и волшебные баги, которые на них находила. Так мы навинтили кучу разного функционала:


— Можно создавать задачи и вешать на конкретного исполнителя;
— Задачи можно вешать в крон! Чтобы они запускались по времени;
— Если я повесила задачу на Васю — ему придет уведомление об этом. И за 5 минут до того, как придет срок ее сделать. И ровно в срок. Вот!
— В списке задач к исполнению можно нажать "выполнил / продолбал" и задача уедет в соответствующий список :)
— Есть список нотификаций, где ты можешь просмотреть все уведомления;
— Есть отдельная роль менеджера, который видит вообще все задачи и кто что продолбал (а так ты видишь только свои)
— При просмотре пользователя есть ссылка на задачи, которые на нем висят;
— Поиск, фильтрация списка пользователей;
— Все действия можно выполнять не только через  интерфейс, но и через SOAP и REST-запросы.

В общем, как-то так! Причем для курса мне реально нужно немного:

  1. Интеграция с основным проектом.
  2. Разные хитрые граничные значения (будете тестировать → не забывайте про консоль разработчика!).
  3. SOAP + REST. Хотя на самом деле только SOAP, для REST у нас другое задание, в 10 раз круче Smile :) Но оно в закрытом доступе, поэтому я и для «открытой всем» системы попросила добавить. Буду делать всякие обучающие статьи и видеоролики теперь на примере Users!
Весь остальной функционал — задел на будущее. Может, в каком курсе с классами эквивалентности будем разбирать, может, просто статьи напишу. Ведь классный же функционал! Интересный, нетривиальный, взаимосвязанный...

В общем, тестируйте на здоровье ツ
Я даже ТЗ для вас подготовила! Причем реальное ТЗ, которое выдавалось фрилансеру. Да да, подробнейшая документация на 100 листов чаще всего миф. И когда ее нету, хорошо бы иметь ну хотя бы вот так, кратенько )))


ТЗ на Users (техническое задание)



Система Users, сотрудники
Делаем отдельную систему пользователей.


1. Регистрация / авторизация


Там есть регистрация, ник + пароль → заводится карточка в этой же системе.
Плюс регистрация через соцсети.

Через SOAP / REST методы:

  • doRegister — в ответе карточка созданного клиента или текст ошибки. Пользователь создается и появляется в системе. Автор у него будет «SOAP»
  • doLogin — проверка правильности логина-пароля. Возвращает true / false 


2. Список сотрудников


Главная — список сотрудников, возможность создать нового.
Ты можешь посмотреть любого, но изменить или удалить только своего.

Доступен поиск по ФИО пользователя, его емейлу или автору (отсортировать всех, кого создал сам). Также есть фильтрация по дате изменения — посмотреть всех, созданных / измененных вчера итд. Все фильтры можно сбросить одной кнопкой.

Колонки в списке сотрудников можно сортировать. Сортировка идет по всей базе, а не только по той странице, на который ты находишься.

Если сотрудник свежесоздан / изменен, он попадает наверх списка → бай дефолт сортировка по дате изменения по убыванию.


3. Карточка сотрудника


Поля карточки, в основном просто текстовые поля:

Email
ФИО
Пол --- выпадайка
Дата рождения --- дата
Начал работать в компании --- дата
Хобби
имя1
фамилия1
отчество1
Кошечка
Собачка
Попугайчик
Морская свинка
Хомячок
Белочка
Телефон
Адрес

Создавать дубли по нику или ФИО нельзя, мы считаем, что все ФИО уникальны.

SOAP / REST методы:

  • getUser — возвращает карточку пользователя;
  • UpdateUserOneField — изменить одно любое поле у пользователя;
  • FullUpdateUser — изменить все поля. В запросе обязательно передать все. Если оставить пустым — поля затрутся


4. Список задач


Говорят, нынче модно писать реализацию туду-листов, вот и мы напишем =) На самом деле это ради обертки над cron (см след пункт).

Заходишь в раздел, можешь создать задачу:
— Название string(50)
— Описание string(500)
— Ответственный (тут отображаются ФИО всех сотрудников)

Она появляется в списке задач, где можно ее изменить, удалить или добавить в расписание.
Простой пользователь видит только свои задачи, менеджер → вообще все. И все может менять.

SOAP / REST методы:

  • CreateTask — создать задачу, в ответе сама задача. Она появляется в интерфейсе.
  • UpdateTask — обновить задачу. В ответе будет просто «Задача успешно изменена!»
  • DeleteTask — удалить задачу из списка. Вернет текст «Задача с ID 17 успешно удалена». Чтобы удалить задачу, нужно знать ее ID. ID возвращается в ответе метода CreateTask + его видно в режиме просмотра / редактирования задачи в интерфейсе.
  • AddTaskInCron — добавить в расписание. Ответ будет, что задача добавлена в расписание + дата следующего запуска. Например, «Расписание успешно добавлено в задачу 18 Следущая дата запуска 06.04.2017 12:00»


5. Уведомления


Сделать уведомления о задаче:

Я создала задачу, повесив на пользователя А. Задача должна сработать через 30 минут.

1. У пользователя сразу же появляется уведомлялка — ну как Gmail Checker, типа «на вас повесили задачу».
2. За 5 минут до начала задачи приходит вторая уведомлялка «Через 5 минут будет задача такая-то».
3. Ну и ровно в срок уведомлялка.
4. Когда открываешь уведомлялку (это сейчас в блоке “0 заданий / 1 задание…”) должна быть кнопка “сделал”, только тогда она пропадает из расписания. Плюс кнопка «продолбал» :) Нажатия на эти кнопки логируются: “Пользователь А подтвердил, что сделал задачу (название задачи) / Пользователь А продолбал задачу (название задачи)”

Выполненные и пропущенные задачи должна быть возможность просмотреть --- Поля из самой задачи + кто и во сколько ее создал и когда она была в расписании исходно. И когда попала в "выполненные" / продолбанные.

На вкладке http://users.bugred.ru/tasks/my/completes колонки "Создана" и "Выполнена" (в итоге сделали одну, «время» выполнения)
На вкладке http://users.bugred.ru/tasks/my/fails такая же колонка со временем.

********************************************************************
Сценарий (применялся, когда разработчик запутался в моих требованиях)

У тебя есть список задач:

1. Одноразовые (свозить кота на кастрацию)
2. Многоразовые (поливать цветы 2 раза в неделю)

В списке задач ты видишь актуальные. Кастрацию пока не сделал? Висит и мозолит глаза без даты. Как тока свозил или решил "пущай живет", то есть нажал на кнопку — задача больше не мельтешит перед глазами.

Многоразовые — ты вчера не полил цветок, нажал "продолбал", увидел следующую дату поливки по крону)

Все твои телодвижения логируются: изменил задачу, поставил в расписание, отклонил, сделал
а менеджер может за тобой следить)

********************************************************************

Ты видишь только свои, менеджер видит все. Он может их фильтровать по конкретному человеку и выставлять диапазон проверки. 


6. Менеджер


Отдельная роль, настраивается для любой учетки в админке. В бекап вшит один менеджер: manager@mail.ru / 1.

Менеджер может наблюдать за сотрудниками:

— Он видит все оповещения + может их сортировать и фильтровать;
— Он видит все текущие задачи, все продолбанные и все выполненные;
— Он может отредактировать любую задачу;


Итого


Users — система с кучей самого разного функционала. Вы можете:

— Исследовать приложение в поисках JS-ошибок, потренироваться использовать консоль разработчика.
— Изучить, как работают вызовы SOAP и REST.
— Показывать своим джуниорам, «как что тестировать», в том числе и тестирование документации. Ну а что, вот же она, чуть выше ツ

А если хотите покопаться в логах, найти баг кеширования на сервере, локализовать невнятно описанный баг и найти граничные значения на клиенте и сервере → приходите к нам на курс «Техники и инструменты поиска и оформления дефектов», там все это будет! Smile :)

2 комментария:

  1. Спасибо Вам за предоставленную возможность познакомиться на практике c SOAP и REST!)

    ОтветитьУдалить