Технологии тестирования Rich Web client, Андрей Плешков,...
-
Upload
tfmailru -
Category
Technology
-
view
5.082 -
download
2
Transcript of Технологии тестирования Rich Web client, Андрей Плешков,...
![Page 1: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/1.jpg)
![Page 2: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/2.jpg)
Автоматизированное
тестирование
Rich Web Client
![Page 3: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/3.jpg)
![Page 4: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/4.jpg)
Юнит-тестирование
• Чем плохи безбраузерные тесты? • Синхронные и асинхронные тесты• Что использовать?
![Page 5: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/5.jpg)
jsTestDriver
![Page 6: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/6.jpg)
Cтартуем сервер
![Page 7: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/7.jpg)
Цепляем браузеры
![Page 8: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/8.jpg)
Запускаем тесты
![Page 9: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/9.jpg)
Как выглядит тест?
{ setUp: function () { // ... }, testSomething: function () { // ... }, tearDown: function () { // ... }}
![Page 10: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/10.jpg)
Дополнительно
• Sinon.JS • js-build-tools
![Page 11: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/11.jpg)
Sinon.JS
setUp: function () { // use fake XHR },testSomeXHR: function () { var id = null; var req = new XHR(...) .send(function (r) { id = r.id; }); // respond to request assertEquals(1, id); },tearDown: function () { // restore XHR }
![Page 12: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/12.jpg)
js-build-tools
![Page 13: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/13.jpg)
core.RAW.js
var app = null;
function registerApplication(aApp) { if (app) throw 'Только одно приложение!'; app = aApp;} // #ifdef testmode function unregisterCurrentApplication() { app = null;} // #endif
![Page 14: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/14.jpg)
core.js
var app = null;
function registerApplication(aApp) { if (app) throw 'Только одно приложение!'; app = aApp;}
![Page 15: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/15.jpg)
core.TEST.js
var app = null;
function registerApplication(aApp) { if (app) throw 'Только одно приложение!'; app = aApp;} function unregisterCurrentApplication() { app = null;}
![Page 16: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/16.jpg)
Этого хватит?
![Page 17: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/17.jpg)
Selenium 2
Selenium Core
Selenium Core
Java, Ruby, Python, Perl, PHP or .NET
![Page 18: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/18.jpg)
Selenium 2
Selenium Core
Selenium Core
Java, Ruby, Python, Perl, PHP or .NET
Remote Control
![Page 19: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/19.jpg)
Очень медленно
![Page 20: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/20.jpg)
Grid2
![Page 21: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/21.jpg)
Grid2
![Page 22: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/22.jpg)
Grid2
![Page 23: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/23.jpg)
PageObjects
public class LoginPage { ... public void loginAs(String login, String pwd) { // 1. находим инпут с логином // 2. заполняем его // 3. находим инпут с паролем // 4. заполняем его // 3. submit } ...}
![Page 24: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/24.jpg)
PageObjects + PageFactory
public class LoginPage { @FindBy(name = "login") private WebElement loginEl; @FindBy(name = "pwd") private WebElement pwdEl; ... public void loginAs(String login, String password) { // 1. заполняем инпут с логином // 2. заполняем инпут с паролем // 3. submit } ...}
![Page 25: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/25.jpg)
LoadableComponent
webagent.goOnline(Status.AWAY) .getContactList() .open() .findContact("Vasya Pupkin");
![Page 26: Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mail.Ru](https://reader034.fdocument.pub/reader034/viewer/2022052315/556433b5d8b42ace308b48c8/html5/thumbnails/26.jpg)
Когда запускаем тесты
• После завершения фичи• После подготовки prerelease• После раскладки на боевые• По времени