viqa - Тестирование ui с помощью Виртуального интеллекта

49
V I Q A Virtual Intelligence Quality Assurance

Upload: sqalab

Post on 11-Jan-2015

636 views

Category:

Documents


2 download

DESCRIPTION

Доклад Романа Иовлева на SQA Days-15. 18-19 апреля, 2014, Москва. www.sqadays.com

TRANSCRIPT

  • 1. V I Q A Virtual Intelligence Quality Assurance
  • 2. QAAutomation Lead
  • 3. V I Q A . Selenium UI - Yandex QA Tools Yandex QA Tool VIQA Virtual Intelligence VIQA PageObjects
  • 4. VIQA Virtual Intelligence Quality Assurance Tool .Net C# Selenium 2.X PageObjects https://github.com/Supreme85/VIQAUITestingTool
  • 5. Web UI Like User Behavior Tests , .
  • 6. Selenium? WebElement , , , html
  • 7. driver.FindElement(By.XPath(somelocator1")).SendKeys("1000"); driver.FindElement(By.XPath(somelocator2")).SendKeys("20000"); driver.FindElement(By.XPath(somelocator3")).Click(); driver.FindElement(By.XPath(somelocator4")).Click(); driver.FindElement(By.XPath(somelocator5").Click(); driver.FindElement(By.XPath(somelocator6")).Click(); driver.FindElement(By.XPath(somelocator7")).Click(); driver.FindElement(By.XPath(somelocator8")).Click(); driver.FindElement(By.XPath(somelocator9")).Click(); driver.FindElement(By.XPath(somelocator10")).Click();
  • 8. Selenium Yandex QA Tool : Button, Checkbox, TextInput PageObjects Blocks UI, ...
  • 9.
  • 10.
  • 11. Yandex QA Tool TypifiedElement
  • 12. V I Q A new Checkbox(My Checkbox") { ClickAction = () => MyElementForClick.Click(), GetLabelFunc = () => MyElementForLabel.Label, IsSelectedFunc = () => MyElementForClick.GetAttribute("checked") == "1", };
  • 13. (Checkbox) IsChecked Label Click Check Uncheck SetValue
  • 14. V I Q A public interface ICheckbox : IClickable, ILabeled, ISetValue { void Check(); void Uncheck(); bool IsChecked(); }
  • 15. new DropDown("My Dropdown") { SelectAction = val => { MySelectMainElement.Click(); MySelectListElement.WithName(val).Click(); } };
  • 16. ,
  • 17. Yandex QA Tool
  • 18. V I Q A IVILogger VIAction
  • 19.
  • 20. new Site().Logger = MyLogger(); interface IWebLogger { void Event (string msg); void Error (string msg) } }
  • 21. VIAction VIElement.DefaultViAction = (viElement, text, viAction) => { viElement.Logger.Event(Do action: + text); viAction.Invoke(); }
  • 22. VIAction new RadioButtons( , #sensorScreen) { VIAction = (viElement, text, viAction) => { if (!FirstSensorRadioButton.IsDisplayed) SensorBlock.Click(); viAction.Invoke(); } };
  • 23. AI vs VI Artificial Intelligence Virtual Intelligence
  • 24. 1 2 1 2
  • 25. Yandex QA Tool PageObjects Block HtmlElement Block
  • 26. V I Q A VISite VIPage VIElement VIElement
  • 27. VISite WebDriver (, ) OpenPage/OpenHomePage
  • 28. site.OpenHomePage(); { var _ = HomePage; _.TextFieldFrom.Input("1000"); _.TextFieldTo.Input("2000"); _.MyCheckbox.Check(); _.MyRadioButtons.Select(""); _.SearchButton.Click(); } Assert.IsNotNull(SearchPage.ExpectedElement.WaitWebElement());
  • 29. VI- : Button, CheckBox, Link, TextArea, TextField, Clickable, Text, ClickableText : CheckList, RadioButtons, Dropdown, DataForm
  • 30. Block vs ViElement
  • 31. Yandex QA Tool [FindsBy(How = How. ClassName, Using = my-checkbox")] public CheckBox MyCheckbox;
  • 32. V I Q A [Name(Name = "Wi-fi"), Locate(ByXPath = "//*[@class=my-checkbox']")] public ICheckbox MyCheckbox1 = new Checkbox(); [Name(Name = "Wi-fi"), Locate(ByClassName = my-checkbox")] public Checkbox MyCheckbox2; public ICheckbox MyCheckbox3 = new Checkbox("Wi-fi", "#my-checkbox"); public Checkbox MyCheckbox4 = new Checkbox("Wi-fi", By.CssSelector("#my-checkbox"));
  • 33. Fill Form ISetValue
  • 34.
  • 35. Selenium driver.FindElement(Locators.FromTextField).SendKeys("1000"); driver.FindElement(Locators.ToTextField).SendKeys("20000"); driver.FindElement(Locators.WifiExpand).Click(); driver.FindElement(Locators.WifiCheckbox).Click(); driver.FindElement(Locators.SensorScrnExpand).Click(); driver.FindElement(Locators.SensorScrnRadio()).Click(); driver.FindElement(Locators.ProcessorExpand).Click(); driver.FindElement(Locators.ProcessorCheckbox(AppleA4)).Click(); driver.FindElement(Locators.ProcessorCheckbox(AppleA5)).Click(); driver.FindElement(Locators.ProcessorCheckbox(AppleA7)).Click();
  • 36. VIQA { var _ = ProductPage.FilterSection; _.TextFieldFrom.Input("1000"); _.TextFieldTo.Input("2000"); _.WiFiCheckbox.Check(); _.SensorScreenRadioButtons.Select(""); _.ProcessorTypesChecklist.CheckGroup( new[]{"Apple A5", "Apple A6", "Apple A7"}); }
  • 37. Fill Form ProductPage.FilterSection.FillForm(MyProduct);
  • 38. /
  • 39. VI-: More : VIElements
  • 40. Open KillAllRunWebDrivers
  • 41. 2
  • 42. . / VIElement- -
  • 43. VIQA Profit PageObjects,
  • 44. VIQA Profit ( , webDriver, )
  • 45. Java
  • 46. Email: [email protected] [email protected] GitHub https://github.com/Supreme85/VIQAUITestingTool http://vk.com/viqatools