• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Перший раз завжди страшно... про автоматизоване тестування
 

Перший раз завжди страшно... про автоматизоване тестування

on

  • 1,462 views

Буде розглянуто основні підходи автоматизації функціонального та навантажувального тестування на прикладі ...

Буде розглянуто основні підходи автоматизації функціонального та навантажувального тестування на прикладі таких застосунків як: JMeter, Selenium IDE/WebDriver/RC, Watir, Grinder, Sikuli, Sahi. Буде висвітлено використання інструментів, конфігурації середовища та організації тест скриптів для забезпечення покриття програмного продукту автоматичним тестуванням.

Statistics

Views

Total Views
1,462
Views on SlideShare
1,431
Embed Views
31

Actions

Likes
0
Downloads
6
Comments
0

1 Embed 31

http://itevent.if.ua 31

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Для того, щоб ідентифікувати елемент на веб сторінці, можна використати:
  • Рідко Selenium Grid використовується для навантажувального тестування,АЛЕSelenium був розроблений не для такого типу тестування
  • Операційні системиWindowsLinuxMac
  • Firebughttps://addons.mozilla.org/en-US/firefox/addon/firebug/
  • В Work With додати (Help > Install New Software)
  • Про клас (наприклад simple_test)з public static void main методомjUnitпосуті потрібний лише для асертів
  • обрізати картинку
  • HTTP/1.1
  • дане вікно використовується для коментування скрипта під час запису
  • Виконавчв Секція описана класом з методами для кожного запиту вхідною точкою є метод
  • (GRINDERPROPERTIES setGrinderEnv.cmd)@REM
  • Загальний графікДетальна інформація по кожному запитуГрафік для конкретного запитуАналізуючи це все можна зробити висновок наскільки добре працює система
  • Замінити малюнки
  • В сам скрипт можна додати різні елементи якто перевірки умови брати інформацію з зовнішніх файлів
  • Замінити малюнки
  • Опис роботи, скрипт + скріншотSikuli – це аплікація для автоматизованого тестування, що використовує зображення для ідентифікації елементів. В основі лежить мова python.

Перший раз завжди страшно... про автоматизоване тестування Перший раз завжди страшно... про автоматизоване тестування Presentation Transcript

  • Перший раз завжди страшно... про автоматизоване тестування Доповідачі Віталій Зінченко Вероніка Вульф
  • Мова йтиме про: Функціональне тестування  Selenium • IDE (Integrated Development Environment) • RC (Remote Control) • WD (Web Driver)  Watir (Web Application Testing inRuby)  Sahi Навантажувальне тестування  Grinder  Jmeter Sikuli – для потіхи
  • Ідентифікація елементів Id: id=EbayTickets, id=00Nd0000004MEN8 Link: link=Accounts, link=Sign in Xpath: xpath=//div[@id="some_id"] Css: css=div[id=some_id] http://www.w3.org/TR/CSS2/selector.html http://www.w3schools.com/xpath/
  • Css та Xpath Синтаксис Css та XPathCss xPath Тлумачення> / наступний рівень ієрархії обєкту* Відмінності в синтаксисі xPathбудь-який елемент, що знаходиться в // і Сss: ієрархії нижче від поточного Css Xpath Тлумачення* //* всі елементи css=div[id=some_id] xpath=//div[@id="some_id"] прив‘язка до іерархіїp //p обєкта всі P елементи css=divp>* * span > a xpath=//div//span/a //p/* прив‘язка до всі дочірні атрибутів#foo css=div[@title~=title] xpath=//div[contains(@title="title")] елементчасткова прив’язка до //*[@id=foo] за ID.foo //*[contains(@class,foo)] елементатрибутів за class*[title] //*[@title] елемент за titlep > *:first-child //p/*[0] перший дочірний елемент в усіх PNot possible //p[a] всі P да А є дочірнімp+* //p/following-sibling::*[0] наступний елемент
  • Selenium, Watir, Sahi - застосуванняПерелічені аплікації використовуються для:  Функціонального тестування  Приймального тестування  Тестування сумісності з браузерами Можливість використання різних мов у скриптах Мова Сімейство Watir продуктів Selenium Sahi C# Watin RC, WD - Java Watij IDE, RC, WD + PHP - RC, WD - Ruby Watir RC, WD + Python - RC, WD - Perl - RC, WD - HTML - IDE -
  • Selenium - сумісність Web Driver Google Chrome Internet Explorer Mozilla Firefox Opera Remote Controller Google Chrome Internet Explorer Mozilla Firefox Opera Safari
  • Selenium IDE – початок роботи Необхідні ресурси: • Mozilla Firefox (v.3x-12x) • Selenium IDE плагін для Mozilla Firefox (v.3x-12x) http://seleniumhq.org/projects/ide/
  • Selenium IDE – запис скрипта  Запуск Selenium IDE (Tools->Selenium IDE)  Увімкнення рекордера (стартує при запуску)  Виконання сценарію в браузері
  • Від Selenium IDE до Selenium RCНеобхідні ресурси: Selenium-server-standalone-2.21.0-SRC-712.patch.jar http://code.google.com/p/selenium/downloads/list TestSuite (необхідно створити) run-test.cmd файл (необхідно створити)Запуск скрипта: Запуск run-test.cmd файл
  • Від Selenium IDE до Selenium RCНеобхідні ресурси: Selenium-server-standalone-2.21.0-SRC-712.patch.jar http://code.google.com/p/selenium/downloads/list TestSuite (необхідно створити) run-test.cmd файл (необхідно створити) java -jar selenium-server-standalone-2.21.0-SRC-712.patch.jar -htmlSuite "*firefox" "http://ebay.com/" "./Ebay.html" "./TestResults-log.html" -timeout 180 start .TestResults-log.htmlЗапуск скрипта: Запуск run-test.cmd файл
  • Selenium RC Запуск скрипта: • Відкрити NetBeans IDE Selenium Remote Control • Створити новий Maven проект • Конвертнути тест - кейс з Selenium IDE File->Export Test Case As->Junit4 (Remote Control) Selenium Server • Додати конвертований файл в проект в NetBeans Web Test Scripts Selenium Core Launch and Kill Application Використати Maven репозиторій для об’єктів, що не знайдені в HTML, Javascript Firefox, експортованому файліjava, .net, perl, commands Safari, ruby, python налаштування проксі в браузері Internet • Змінити HTTP Proxy HTTP Explorer • Запустити проект в NetBeans configured Client
  • Selenium Web DriverЗапуск скрипта: Запустити NetBeans IDE Створити новий Maven проект Конвертнути тест- кейс з Selenium IDE File->Export Test Case As->Junit4 (WebDriver) Додати експортований файл в проект в NetBeans Використати Maven репозиторій для об’єктів, що не знайдені в експортованому файлі. Запустити тест в NetBeans
  • Watir(Web Application Testing inRuby) Watir сумісний з: Internet Explorer Google Chrome Mozilla Firefox Opera
  • Watir – початок роботиНеобхідні ресурси: Ruby та Devkit http://rubyinstaller.org/downloads Інструкція до Watir - https://github.com/zeljkofilipin/watirbook/downloads Сhrome driver http://code.google.com/p/chromedriver/downloads/list
  • Watir – налаштуванняНеобхідні встановлення: Оновити RubyGems: gem update – system ffi пакет, вимагається Watir and watir-webdriver При помилці встановлення ffi пакета – встановити DevKit Виконати ruby dk.rb init Встановити ruby dk.rb install Встановити Watir: gem install watir Встановити WebDriver: gem install watir-webdriver Додати шлях, де розміщено chrome driver, в %PATH% Налаштування IE для роботи з WebDriver - увімкнути Protected Mode для всіх зон Internet Options > Security
  • Watir – налаштуванняЯк перевірити, чи все працює в IE: C:watirdevkit>irb irb(main):001:0> require "watir" => true irb(main):002:0> browser = Watir::Browser.new => #<Watir::IE:0x246680a2 url="about:blank" title=""> - запустився браузер Internet Explorer irb(main):003:0> browser.goto "google.com" => 2.403473 - відкрилась сторінка гугла в Internet Explorer irb(main):004:0>
  • Watir & EclipseНеобхідні ресурси: Eclipse Java Dynamic Languages Toolkit (DLTK) (містить підтримку Ruby) http://download.eclipse.org/technology/dltk/updates/Налаштування середовища: Запустити Eclipse, вказати workspace Налаштувати Dynamic Language Toolkit (DLTK) 2.0 Зазначити використання Ruby Відзначити використання: • Dynamic Language Toolkit - Core Framework Ruby Perspective в Window > Open Perspective > Other, вибрати Ruby Налаштувати інтерпретаторCore Frameworks SDK • Dynamic Language Toolkit - Ruby Window > Preferences > Toolkit - Ruby Development шлях до ruby.exe • Dynamic Language Ruby > Interpreters. Вказати Tools • Dynamic Language Toolkit - Ruby Development Tools SDK Створити проект File > New > Ruby Project
  • Watir - скриптrequire "watir-webdriver"require test/unit‘class EBayTest < Test::Unit::TestCase def test_simple #@browser = Watir::Browser.new :ff #@browser = Watir::Browser.new :chrome browser = Watir::Browser.new :ie browser.goto "ebay.com" browser.element(:css => "#gh-ug a.gh-a").click browser.text_field(:id => "userid").set("QA_AUser") browser.text_field(:id => "pass").set("Automation") browser.checkbox(:id => "signed_in").clear browser.button(:id => "but_sgnBt").click assert(browser.element(:xpath => "//table/tbody/tr/td[3]/span/b").text.include?("qa_auser")) assert(browser.element(:xpath => "//table/tbody/tr/td[3]/span/a").text.include?("Sign out")) browser.close() end Лог файл Run options:end # Running tests: Finished tests in 15.338171s, 0.0652 tests/s, 0.1304 assertions/s. 1 tests, 2 assertions, 0 failures, 0 errors, 0 skips
  • Sahi – початок роботиНеобхідні ресурси: Остання версія sahi http://sahi.co.in Java Mozilla Firefox Eclipse Classic http://www.eclipse.org/downloads/Необхідні налаштування: Відредагувати sahi/config/sahi.properties -> controller.mode=java Забезпечує запис коду на Java
  • Sahi – налаштування Запустити Eclipse Створити Java проект Next -> на вкладку Liblaries Додати sahi.jar - Add External Jars з ...sahilib Створити новий клас в проекті Підключити Sahi і jUnit до проекту import net.sf.sahi.client.Browser; import net.sf.sahi.config.Configuration; import junit.framework.*;
  • Sahi – створення скрипта Запустити Sahi Запустити браузер Відкрити вікно рекордера - в браузері натиснути Ctrl+Alt+DblClick Натиснути Record і записати визначений сценарій
  • Sahi – створення скрипта в Eclipse Додати ініціалізацію браузера String sahiBase = “…/sahi/"; // шлях до встановленого Sahi String userDataDirectory = “…/sahi/userdata"; //шлях до користувацьких даних в Sahi Configuration.initJava(sahiBase, userDataDirectory); String browserType = "ie"; Browser browser = new Browser(browserType); browser.open(); Додати записаний код, модифікуючи ідентифікатори
  • Порівняння скриптів. Відриття сторінки ebay.comВикористана аплікація Вигляд скриптаSelenium IDE open /Selenium RC selenium.open("http://www.ebay.com/");Selenium WD driver.get(baseUrl + "/");Watir browser.goto "ebay.com"Sahi browser.navigateTo("ebay.com");
  • Порівняння скриптів. Клік на „Sign in‟ лінку для переходу на форму логуванняВикористана аплікація Вигляд скриптаSelenium IDE clickAndWait css=#gh-ug a.gh-aSelenium RC selenium.click("css=#gh-ug a.gh-a");Selenium WD driver.findElement(By.cssSelector("#gh-ug a.gh- a")).click();Watir browser.element(:css => "#gh-ug a.gh-a").clickSahi browser.link("Sign in").click();
  • Порівняння скриптів. Ввід логінуВикористана аплікація Вигляд скриптаSelenium IDE type id=userid QA_AUserSelenium RC selenium.type("id=userid", "QA_AUser");Selenium WD driver.findElement(By.id("userid")).sendKeys("QA_AUse r");Watir browser.text_field(:id => "userid").set("QA_AUser")Sahi browser.textbox("userid").setValue("QA_AUSer");
  • Порівняння скриптів.Ввід паролюВикористана аплікація Вигляд скриптаSelenium IDE type id=pass AutomationSelenium RC selenium.type("id=pass", "Automation");Selenium WD driver.findElement(By.id("pass")).sendKeys("Automatio n");Watir browser.text_field(:id => "pass").set("Automation")Sahi browser.password("pass").setValue("Automation");
  • Порівняння скриптів. Зняття відмітки з ‘Keep me signed in’ чекбоксуВикористана аплікація Вигляд скриптаSelenium IDE click id=signed_inSelenium RC selenium.click("id=signed_in");Selenium WD driver.findElement(By.id("signed_in")).click();Watir browser.checkbox(:id => "signed_in").clearSahi browser.checkbox("keepMeSignInOption").click();
  • Порівняння скриптів. Клік на „Sign in‟ кнопціВикористана аплікація Вигляд скриптаSelenium IDE clickAndWait id=but_sgnBtSelenium RC selenium.click("id=but_sgnBt");Selenium WD driver.findElement(By.id("but_sgnBt")).click();Watir browser.button(:id => "but_sgnBt").clickSahi browser.submit("Sign in").click();
  • Порівняння скриптів. Перевірка успішності логування - наявність імені користувачів на сторінціВикористана аплікація Вигляд скриптаSelenium IDE assertText xpath=//table/tbody/tr/td[3]/span/b qa_auserSelenium RC assertEquals("qa_auser", selenium.getText("xpath=//table/tbody/tr/td[3]/span/b"));Selenium WD assertEquals("qa_auser", driver.findElement(By.xpath("//table/tbody/tr/td[3]/span/b")). getText());Watir assert(browser.element(:xpath => "//table/tbody/tr/td[3]/span/b").text.include?("qa_auser"))Sahi assertTrue(browser.byXPath("//table/tbody/tr/td[3]/span/b"). getText().equals("qa_auser"));
  • Порівняння скриптів. Перевірка успішності логування - наявність лінку „Sign out‟Використана аплікація Вигляд скриптаSelenium IDE assertText xpath=//table/tbody/tr/td[3]/span/a Sign outSelenium RC assertEquals("Sign out", selenium.getText("xpath=//table/tbody/tr/td[3]/span/a"));Selenium WD assertEquals("Sign out", driver.findElement(By.xpath("//table/tbody/tr/td[3]/span/a")). getText());Watir assert(browser.element(:xpath => "//table/tbody/tr/td[3]/span/a").text.include?("Sign out"))Sahi assertTrue(browser.byXPath("//table/tbody/tr/td[3]/span/a"). getText().equals("Sign out"));
  • Навантажувальне тестування - load testing Охоплює:  Тестування відмовостійкості - failover testing  Стрес-тестування - stress testing  Цільова перевірка - targeted infrastructure test  Об‟ємне тестування - volume testing  Тестування стабільності - endurance testing  Тестування швидкодії - performance testing  Тестування пропускної здатності - network sensitivity testing
  • Навантажувальне тестування Показники, що слід враховувати:  час відповіді  кількість запитів за секунду  навантаження процесора  навантаження пам‟яті  завантаженість мережевого інтерфейсу  кількість виконаних запитів  кількість невдалих запитів  інші показники: база даних, сервіси, інше Для кожної з вищевказаних метрик слід зібрати наступні значення:  Середнє  Максимальне  Мінімальне
  • Запити. Get & Post HTTP (HyperText Transfer Prоtocоl ) — протокол прикладного рівня передачі даних. Основою HTTP є технологія «клієнт-сервер», тобто є клієнт, що висилає запит, і сервер, який обробляє запит і відсилає відповідь з результатом. GET POST  GET+ Швидкий - Повільний- Інформація, що відсилається на вмісту певного ресурсу.Всі дані на Використовується для отримання + Інформація, що відсилається введені в адресну стрічку переводяться в GET запити. (в тілі запиту)сервер – видима сервер – невидима Наприклад - http://www.site.com/index.htmlінформації, що можна- Об‟єм інформації, що можна + Об‟ємнадіслати - обмежений серверу: "Дай мені файл index.html, який Дана команда каже надіслати - необмежений+ Сторінки – результати запиту, сайті) http://www.site.com/". запиту, не знаходиться в директорії (на - Сторінки – результати POSTможна зберегти в закладках можна зберегти в закладках Використовується для передачі користувацьких даних певному ресурсу. Дані при передачі включаються в тіло запиту, тобто дані приховані. Вміст відповіді сервера на запит POST не кешується.
  • Запити• DELETE OPTIONSВикористовується дляресурс. Видаляє вказаний визначення можливостей веб-сервера і параметрів з‟єднання для конкретного ресурсу. У відповідь серверу необхідно • включити заголовок Allow зі списком підтримуваних методів, TRACE розширень. Повертає отриманий запит таким чином, що клієнт має можливістьДляпобачити іформацію, що була всього сервера, клієнт повинен вказати того, щоб взнати можливості змінена чи додана проміжними URL “*”. Запити “OPTIONS * HTTP/1.1” можуть використовуватись для в серверами. перевірки справності сервера, підтримки протокола HTTP версії 1.1. • Результати цього запиту не кешуються. LINKВстановлює зв‟язок вказаного ресурсу з іншим. HEADАналогічний до методу GET, але у відповіді сервера відсутнє тіло. • UNLINK Зазвичай використовується для отримання метаданих, перевірки Знищує зв‟язок вказаного ресурса з іншим. переконатись, що він не наявності ресурсу (валідація URL) і щоб • змінився від часу останнього звернення. Заголовки відповіді можуть CONNECT кешуватись. При неспівпадінні метаданих ресурсу з відповідною Трансформує з‟єднання запиту в прозорий TCP/IP тунель, зазвичай для інформацією в кеші, копія ресурсу позначаєтться застарілою. PATCH щоб створити захищений SSL зв‟язок через незашифрований того, проксі.Аналогічний до PUT, але застосовується лише до фрагменту ресурса.
  • Grinder - встановленняНеобхідні ресурси: grinder 3.7.1 (остання версія 3.8 не працює з Grinder Analyzer) http://grinder.sourceforge.net/ grinder analyzer http://track.sourceforge.net/ jython2.5.2 (необхідний для grinder analyzer ) http://www.jython.org/ JavaНеобхідні налаштування: Розпакувати Grinder ...grindergrinder3.7.1 Проінсталювати jython ...grinderjython2.5.2 Розпакувати Grinder Analyzer ...grinderGrinderAnalyzer.V2.b16
  • Grinder – початок роботиGrinder складається з трьох елементів: startAgent.cmd - запуск агента  Агент - виконує тестовий скрипт @REM startAgent.cmd:  Консоль керування - використовується для керування агентами call .setGrinderEnv.cmd  Проксі - використовується для запису скрипта echo %CLASSPATH%Необхідні -cp %CLASSPATH% net.grinder.Grinder %GRINDERPROPERTIES% java налаштування: startConsole.cmd - запуск консолі керування setGrinderEnv.cmd - файл для встановлення середовища запуску grinder @REM startConsole.cmd: @REM setGrinderEnv.cmd: call .setGrinderEnv.cmd  set GRINDERPATH=…grindergrinder-3.7.1 java -cp %CLASSPATH% net.grinder.Console startProxy.cmd - запуск проксі set GRINDERPROPERTIES=…grindergrinder.properties @REM startProxy.cmd:  set CLASSPATH=%GRINDERPATH%libgrinder.jar; call .setGrinderEnv.cmd …jython2.5.2;%CLASSPATH% java -classpath %CLASSPATH% net.grinder.TCPProxy -console -http >  setgrinder.py JAVA_HOME=C:Program FilesJavajre7 PATH=%JAVA_HOME%bin;%PATH%  скрипт буде записано в grinder.py
  • Grinder – запис тесту Запустити startProxy.cmd Налаштувати браузер на проксі 2012-05-25 18:12:27,396 INFO tcpproxy: Initialising as an HTTP/HTTPS proxy with the parameters: Запис скрипта для google.com : Request filters: HTTPRequestFilter  пройти визначений сценарій, який буде записаний в grinder.py Response filters: HTTPResponseFilter Local address: localhost:8001  секція підключення модулів: 2012-05-15 11:12:28,538 INFO tcpproxy: Engine initialised, listening on port 8001 - проксіfrom net.grinder.script import Test  опис заголовків запитів: запустився на 8001 from net.grinder.script.Grinder import grinder connectionDefaults.defaultHeaders = [ підключення  опис адрес, до яких відбувалось NVPair(Accept-Language, en- from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest us,en;q=0.5), url0 = http://google.com.ua:80 from HTTPClient import NVPair NVPair(Accept-Encoding, gzip, deflate), url1 = http://www.google.com.ua:80 connectionDefaults = HTTPPluginControl.getConnectionDefaults() NVPair(User-Agent, Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 url2 = http://www.gstatic.com:80 Firefox/12.0), ] = HTTPPluginControl.getHTTPUtilities() httpUtilities url3 = http://ssl.gstatic.com:80 headers1= [ NVPair(Accept, image/png,image/*;q=0.8,*/*;q=0.5), NVPair(Referer, http://www.google.com.ua/), ]
  • Grinder – опис запитів request101 = HTTPRequest(url=url0, headers=headers0) request101 = Test(101, GET /).wrap(request101) class TestRunner: - клас з вхідною точкою def page2(self): """GET / (requests 201-202).""" result = request201.GET(/) grinder.sleep(100) request202.GET(/images/icons/product/chrome-48.png) return result def __call__(self): - виконавча секція """Called for every run performed by the worker thread.""" self.page1() # GET / (request 101) self.page2() # GET / (requests 201-202) self.page3() # GET rs=AItRSTPOna8b5LEz0mR0dniAQkRUD0QhZA (requests 301-304) self.page4() # GET tia.png (request 401) self.page5() # GET nav_logo107.png (request 501) self.page6() # GET csi (requests 601-602) self.page7() # GET sem_ca34ccb96290d3b4857d225c8ea30d48.js (request 701) Детальніше про написання скриптів: http://grinder.sourceforge.net/g3/tutorial-perks.html
  • Grinder – налаштування тесту Налаштування тесту: виглядає наступним чином: Файл grinder.properties• grinder.plugin=net.grinder.plugin.http.HttpPlugin grinder.properties• grinder.processes=20 - кількість процесів, що запустить один агент setGrinderEnv.cmd: grinder.threads=10 - кількість потоків set GRINDERPATH=C:grindergrinder-3.7.1 grinder.runs=3 - кількість запусків скрипта кожним потоком set GRINDERPROPERTIES=C:grindergrinder.properties grinder.useConsole=true - виводити результат в консоль set CLASSPATH=%GRINDERPATH%libgrinder.jar;C:jython2.5.2;%CLASSPATH% grinder.logDirectory=logs - записувати лог файли в set JAVA_HOME=C:Program FilesJavajre7 grinder.numberOfOldLogs=2 - зберігати історію логів PATH=%JAVA_HOME%bin;%PATH% grinder.jvm.arguments = -Dpython.home=c:jython2.5.2 підключення jython2 grinder.script=C:/grinder/grinder-3.8/grinder.py - тестовий скрипт Більш детальну інформацію можна знайти на http://grinder.sourceforge.net/g3/manual.html#Table+of+properties
  • Grinder – виконання тесту Запустити startConsole.cmd - буде очікувати на появу агентів Запустити startAgent.cmd ...grindergrinder-3.7.1>java -cp ...grindergrinder-3.7.1libgrinder.jar; ...jython2.5.2; net.grinder.Grinder ...grindergrinder.properties 2012-05-15 12:09:41,352 INFO agent: The Grinder 3.7.1 2012-05-15 12:09:41,482 INFO agent: connected to console at localhost/127.0.0.1:6372 2012-05-15 12:09:41,482 INFO agent: waiting for console signal Натиснути Run в Grinder Console Після завершення сценарію запустити Grinder Analyzer - генерація звіту jython ./analyzer.py "<grinder data File(s)>" <grinder out file> [number of agents] ...jython2.5.2jython.bat .analyzer.py ...grindergrinder- 3.7.1logssahi-0-data.log ...grindergrinder-3.7.1logssahi-0.log Звіт генерується в ...grinderGrinderAnalyzer.V2.b16grinderReport
  • Jmeter - встановленняНеобхідні ресурси: jMeter jakarta.apache.org Java JMeterPlugins.jar – плагін для відображення статистики http://code.google.com/p/jmeter-plugins/Необхідні налаштування: jMeter розпакувати в ...JMeter. JMeterPlugins.jar розпакувати в ...JMeterlibext в файлі jmeter.properties встановити True для параметру jmeter.save.saveservice.thread_count http://code.google.com/p/jmeter-plugins/wiki/PluginInstall
  • Jmeter – створення скрипта Запустити jmeter.bat Створити потокову групу в Test Plan Додати проксі сервер в корінь Workbench Налаштувати проксі  Встановити Target Controller для Proxy Server  Увімкнути Retrieve All Embeded resources from HTTP files Натиснути Start Налаштувати з`єднання через проксі в браузері Пройти тестовий сценарій
  • Jmeter – тестовий сценарій Вигляд скрипта Можливі складові скрипта Параметри запитів Запустити сценарій з наступними параметрами Отримати результат
  • Jmeter - результати Response Time Distribution Active Threads Over Time Responce Codes per Second HTTP 200 - OK HTTP 204 - No Content The server successfully processed the request, but is not returning any content. HTTP 301 - Moved Permanently This and all future requests should be directed to the given URI. Transactions per second Summary Report: Summary Report shows the following information about executed test: · Label - the label test. · # Samples - the number of requests that were sent to target server. · Average - the average elapsed time of a set of results. · Min - the lowest elapsed time for the samples with the same label. · Max - the longest elapsed time for the samples with the same label. · Std. Dev. - the Standard Deviation of the sample elapsed time. · Error % - percent of requests with errors. · Throughput – average numbers of requests per second that are sent to target server. · Kb/sec - the throughput measured in Kilobytes per second.
  • Sikuli – початок роботиЩоб розпочати роботу з Sikuli, необхідно: Завантажити продуктhttp://launchpad.net/sikuli/sikuli-x/x1.0- rc3/+download/Sikuli-X-1.0rc3%20(r905)-win32.exe Встановити Sikuli
  • Sikuli – запис та запуск скрипта
  • Запитання