SlideShare une entreprise Scribd logo
1  sur  44
JDI 2.0 ARCHITECTURE
10 MARCH 2018
Chief QA Automation
In Testing almost 13 years
In Testing Automation 11 years
ROMAN IOVLEV
roman.Iovlev
roman.Iovlev.jdi@gmail.com
DEMO
3
Times, they are changing
4
1. Open EpamGithub site https://epam.github.io/JDI
2. Click user icon
3. Login as User (name: epam, password: 1234)
4. Select Contacts page in sidebar menu
5. Check that Contacts page opened
6. Fill contacts form with:
gender = "Male"; religion = "Other"; wheather = "Sun, Snow"; passport = "true"; name =
"Roman"; lastName = "Iovlev"; position = "QA Automation"; number = "4321"; seria =
"123456"; description = "JDI awesome";
7. Check that contact form filled with expected data:
gender = "Male"; religion = "Other"; wheather = "Sun, Snow"; passport = "true"; name =
"Roman"; lastName = "Iovlev"; position = "QA Automation"; number = "4321"; seria =
"123456"; description = "JDI awesome";
5
TEST SCENARIO
6
7
LOGGING AND REPORTING
=== START LoginTest.loginTest ===
Home Page open https://epam.github.io/JDI/index.html
Login
Home Page Check 'Home Page' opened
=== END LoginTest.loginTest (00:07.714) ===
LOGS
REPORTINGPAGE OBJECTS
8
PROJECT ARCHITECTURE
1. AUT model (PageObjects, ServiceObjects)
2. Test scenarios (plain, Steps template, BDD)
3. Settings (prop files, in-code)
4. Utilities
5. Data Management (DDT)
6. Logging (log4j, …)
7. Reporting (Pass/Fail, Allure, RP, …)
8. CI / CD (Jenkins, TeamCity …)
JDI 2.0
9
• Implemented UI Elements
• UI Elements based PageObjects with cascade initialization
(WebSite.init(EpamSite.class))
• Cascade locators inheritance
• No more sleeps or waits
• Implemented complex elements (Form, Table)
• Automatic Latest Driver download
• Customizable elements and actions
10
JDI 1.X MAIN FEATURES
JDI 1.X
• Business actions detailed log with no effort
• Native integration with reporting (Allure, RP)
• Cross language/version tests
• Enums based actions
• Entity Driven Testing native support
• File based properties
• Customizable page loading and get element strategies
• Support Java and C#
11
JDI 1.X MAIN FEATURES
JDI 1.X
 New architecture
 New strategy
 PageObjects generator
 Cucumber tests manager
 Selenium-Selenide integration
 JDI Http
 JDI on Python
12
JDI 2.0 FEATURES
JDI 2.0
STRATEGY
WEB TESTING 101
13
Test automation in 30 seconds
https://github.com/jdi-templates/jdi2-template
14
TESTS VIA TEMPLATE 101
Test automation in 30 seconds
https://github.com/jdi-templates/jdi2-template
15
MORE TEMPLATES
More templates (https://github.com/jdi-templates/ )
• Web UI
• Web Services
• Mobile
• Desktop …
16
TOOLS AROUND JDI
• PO generators: Web, Http etc.
• Automated tests by Manual QA
• Smoke tests generators: Web, Http etc.
• …
• Simple and full documentation
• Youtube channel with examples, tips & tricks
• JDI Light
• Social networking
• …
17
MORE OBVIOUS
https://github.com/jdi-testing
https://vk.com/jdi_framework
http://jdi.epam.com/
https://www.facebook.com
/groups/jdi.framework/
ARCHITECTURE
18
• Move all common functional to Core
• Simplify new Engines implementation
• Separate repositories for different languages and functions
• Use interface default implementations for methods reusage
• Add AOP pre/post processors for code simplification
19
JDI 2.0 ARCHITECTURE CHANGES
Aspect Oriented Programming
20
AOP
public String validatePurchase(Object obj) { … }
@Step
public void before(JoinPoint j) {
log.info(“Do action: ”, methodName(j));
}
public void after(JoinPoint j, Object result) {
log.info(“Success. Result: ”, result);
}
21
MORE REPOSITORIES
https://github.com/jdi-testing
PAGE OBJECT
GENERATOR
22
23
JDI PO PLUGIN
24
JDI PO PLUGIN RULES
25
JDI PO PLUGIN GENERATE
<input type=“button” value=“Next”>
<input type=“button” value=“Previous”>
<button class=“btn”>Submit</button>
26
PO GENERATOR RULES
"type":"Button",
"name": “value",
"css": “input[type=button]“
"type":"Button",
"name": “text",
"css": “button.btn"
@Findby(css=“input[type=button][value=Next]”)
public Button next;
@Findby(css=“input[type=button][value=Previous]”)
public Button previous;
@Findby(xpath=“//button[@class=‘btn’
and text()=‘Submit’]”)
public Button submit;
new PageObjectsGenerator(rules, urls, output, package)
.generatePageObjects();
27
PAGE OBJECTS GENERATOR LIBRARY
RULES
https://domain.com/
https://domain.com/login
https://domain.com/shop
https://domain.com/about
URLS
{"elements": [{
"type":"Button",
"name": “value",
"css": “input[type=button]"
},
…
]}
OUTPUT
src/main/java
PACKAGE
com.domain
28
SELENIUM PO GENERATOR
Chrome JDI PO Gen plugin:
https://github.com/anisa07/jdi-plugin
PO Gen Java Library:
https://github.com/jdi-testing/jdi-po-generator
29
LINKS
SERVICES TESTING 101
JDI HTTP
30
• ServiceObject model
• Simplified work with response
• Entity driven
• Simple performance testing
• Integrated logging and reporting
31
JDI HTTP VS REST ASSURED
32
SWAGGER TO JDI PO
@ServiceDomain("http://httpbin.org/")
public class ServiceExample {
@ContentType(JSON) @GET("/get/{projectId}/{userId}")
@Headers({
@Header(name = "Name", value = "Roman"),
@Header(name = "Id", value = "Test")
})
static RestMethod<Info> getInfo;
@Header(name = "Type", value = "Test") @POST("/post")
RestMethod postMethod;
@PUT("/put") RestMethod putMethod;
@PATCH("/patch") RestMethod patch;
@DELETE("/delete") RestMethod delete;
@GET("/status/%s") RestMethod status;
@BeforeSuite
public static void beforeSuite() {
init(ServiceExample.class);
….
}
33
SIMPLE SERVICE TEST
@Test
public void statusTest() {
RestResponse resp = service.status.call("503");
resp.isStatus(SERVER_ERROR); //resp.isOk();
assertEquals(resp.status.code, 503);
assertEquals(resp.status.type, SERVER_ERROR);
resp.isEmpty();
}
@Test
public void htmlBodyParseTest() {
RestResponse responce = service.getBook.call();
response.isOk().body("name",
equalTo("Herman Melville - Moby-Dick“));
}
@Test
public void entityTest() {
Info info = getInfo.asData(Info.class);
assertEquals(info.url, "http://httpbin.org/get");
assertEquals(info.headers.Host, "httpbin.org");
assertEquals(info.headers.Id, "Test");
assertEquals(info.headers.Name, "Roman");
}
34
ENTITY DRIVEN
@Test
public void simplePerformanceTest() {
PerformanceResult pr = loadService(3600, getInfo);
System.out.println("Average time: " + pr.AverageResponseTime + "ms");
System.out.println("Requests amount: " + pr.NumberOfRequests);
Assert.assertTrue(pr.NoFails(), "Number of fails: " + pr.NumberOfFails);
}
35
SIMPLE PERFORMANCE TESING
@Test
public void isAliveTest() {
anyMethod.isAlive());
}
SERVICES TESTING BDD
WITH NO EFFORT
36
37
BDD SERVICE TESTS
RUN TESTS
38
BDD SERVICE TESTS
39
BDD UI TESTS
JDI 2.0 IN EXAMPLES
3 MARCH 2018
COMING SOON
• Verify layout
41
PLANS
@Image(“/src/test/resources/submitbtn.png”)
@FindBy(text = “Submit”)
public Button submit;
42
VERIFY LAYOUT
submit.isDisplayed();
submit.assertDisplayed();
• Verify layout
• JDI Light
• Replace Selenium/Selenide etc.
• JDI Test Manager and BDD Tests generator
• Automated tests by manual QA
• No Effort testing: JDI Smoke tests generator
• Selenoid integration, Docker etc.
43
PLANS
44
CHANGE THE WORLD
https://github.com/jdi-testing
https://vk.com/jdi_framework
http://jdi.epam.com/
https://www.facebook.com
/groups/jdi.framework/
…
JDI 2.0

Contenu connexe

Tendances

Jenkins Pipeline meets Oracle
Jenkins Pipeline meets OracleJenkins Pipeline meets Oracle
Jenkins Pipeline meets OracleOliver Lemm
 
GitHub Actions for 5 minutes
GitHub Actions for 5 minutesGitHub Actions for 5 minutes
GitHub Actions for 5 minutesSvetlin Nakov
 
Configuration As Code: The Job DSL Plugin
Configuration As Code: The Job DSL PluginConfiguration As Code: The Job DSL Plugin
Configuration As Code: The Job DSL PluginDaniel Spilker
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCityAnton Arhipov
 
Refresh your project vision with Report Portal
Refresh your project vision with Report PortalRefresh your project vision with Report Portal
Refresh your project vision with Report PortalCOMAQA.BY
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCityAnton Arhipov
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCityAnton Arhipov
 
Testing microservices with docker
Testing microservices with dockerTesting microservices with docker
Testing microservices with dockerDenis Brusnin
 
Jenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkJenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkNitin Sharma
 
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...COMAQA.BY
 
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern AppsMeteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern AppsSashko Stubailo
 
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20CodeValue
 
Moving from app services to azure functions
Moving from app services to azure functionsMoving from app services to azure functions
Moving from app services to azure functionsMichelangelo van Dam
 
Go.cd - the tool that Jenkins ain't
Go.cd - the tool that Jenkins ain'tGo.cd - the tool that Jenkins ain't
Go.cd - the tool that Jenkins ain'tFredrik Wendt
 
State in stateless serverless functions
State in stateless serverless functionsState in stateless serverless functions
State in stateless serverless functionsAlex Pshul
 
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...OlyaSurits
 
Володимир Дубенко "Node.js for desktop development (based on Electron library)"
Володимир Дубенко "Node.js for desktop development (based on Electron library)"Володимир Дубенко "Node.js for desktop development (based on Electron library)"
Володимир Дубенко "Node.js for desktop development (based on Electron library)"Fwdays
 
Making Angular2 lean and Fast
Making Angular2 lean and FastMaking Angular2 lean and Fast
Making Angular2 lean and FastVinci Rufus
 

Tendances (20)

Jenkins Pipeline meets Oracle
Jenkins Pipeline meets OracleJenkins Pipeline meets Oracle
Jenkins Pipeline meets Oracle
 
GitHub Actions for 5 minutes
GitHub Actions for 5 minutesGitHub Actions for 5 minutes
GitHub Actions for 5 minutes
 
Configuration As Code: The Job DSL Plugin
Configuration As Code: The Job DSL PluginConfiguration As Code: The Job DSL Plugin
Configuration As Code: The Job DSL Plugin
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCity
 
Refresh your project vision with Report Portal
Refresh your project vision with Report PortalRefresh your project vision with Report Portal
Refresh your project vision with Report Portal
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCity
 
Build pipelines with TeamCity
Build pipelines with TeamCityBuild pipelines with TeamCity
Build pipelines with TeamCity
 
Testing microservices with docker
Testing microservices with dockerTesting microservices with docker
Testing microservices with docker
 
Automated Testing in DevOps
Automated Testing in DevOpsAutomated Testing in DevOps
Automated Testing in DevOps
 
Jenkins as the Test Reporting Framework
Jenkins as the Test Reporting FrameworkJenkins as the Test Reporting Framework
Jenkins as the Test Reporting Framework
 
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
 
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern AppsMeteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps
 
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
Alon Fliess: APM – What Is It, and Why Do I Need It? - Architecture Next 20
 
Moving from app services to azure functions
Moving from app services to azure functionsMoving from app services to azure functions
Moving from app services to azure functions
 
Go.cd - the tool that Jenkins ain't
Go.cd - the tool that Jenkins ain'tGo.cd - the tool that Jenkins ain't
Go.cd - the tool that Jenkins ain't
 
State in stateless serverless functions
State in stateless serverless functionsState in stateless serverless functions
State in stateless serverless functions
 
DevOps Heroes 2019
DevOps Heroes 2019DevOps Heroes 2019
DevOps Heroes 2019
 
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...
Cloud Native Testing, 2020 Edition: A Modern Blueprint for Pre-production Tes...
 
Володимир Дубенко "Node.js for desktop development (based on Electron library)"
Володимир Дубенко "Node.js for desktop development (based on Electron library)"Володимир Дубенко "Node.js for desktop development (based on Electron library)"
Володимир Дубенко "Node.js for desktop development (based on Electron library)"
 
Making Angular2 lean and Fast
Making Angular2 lean and FastMaking Angular2 lean and Fast
Making Angular2 lean and Fast
 

Similaire à JDI 2.0 Architecture Overview

Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberKMS Technology
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Startedguest1af57e
 
Shall we search? Lviv.
Shall we search? Lviv. Shall we search? Lviv.
Shall we search? Lviv. Vira Povkh
 
Creating Professional Applications with the LinkedIn API
Creating Professional Applications with the LinkedIn APICreating Professional Applications with the LinkedIn API
Creating Professional Applications with the LinkedIn APIKirsten Hunter
 
The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14Mark Rackley
 
The Open & Social Web - Kings of Code 2009
The Open & Social Web - Kings of Code 2009The Open & Social Web - Kings of Code 2009
The Open & Social Web - Kings of Code 2009Chris Chabot
 
Testing mit Codeception: Full-stack testing PHP framework
Testing mit Codeception: Full-stack testing PHP frameworkTesting mit Codeception: Full-stack testing PHP framework
Testing mit Codeception: Full-stack testing PHP frameworkSusannSgorzaly
 
Operational API design anti-patterns (Jason Harmon)
Operational API design anti-patterns (Jason Harmon)Operational API design anti-patterns (Jason Harmon)
Operational API design anti-patterns (Jason Harmon)Nordic APIs
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointMark Rackley
 
Introducing Hangout Apps
Introducing Hangout AppsIntroducing Hangout Apps
Introducing Hangout AppsJonathan Beri
 
APIdays Helsinki 2019 - API Versioning with REST, JSON and Swagger with Thoma...
APIdays Helsinki 2019 - API Versioning with REST, JSON and Swagger with Thoma...APIdays Helsinki 2019 - API Versioning with REST, JSON and Swagger with Thoma...
APIdays Helsinki 2019 - API Versioning with REST, JSON and Swagger with Thoma...apidays
 
Finding things on the web with BOSS
Finding things on the web with BOSSFinding things on the web with BOSS
Finding things on the web with BOSSChristian Heilmann
 
Google I/O 2012 - Protecting your user experience while integrating 3rd party...
Google I/O 2012 - Protecting your user experience while integrating 3rd party...Google I/O 2012 - Protecting your user experience while integrating 3rd party...
Google I/O 2012 - Protecting your user experience while integrating 3rd party...Patrick Meenan
 
Fully Tested: From Design to MVP In 3 Weeks
Fully Tested: From Design to MVP In 3 WeeksFully Tested: From Design to MVP In 3 Weeks
Fully Tested: From Design to MVP In 3 WeeksSmartBear
 
JBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
JBUG 11 - Django-The Web Framework For Perfectionists With DeadlinesJBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
JBUG 11 - Django-The Web Framework For Perfectionists With DeadlinesTikal Knowledge
 
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013Kiril Iliev
 
Android ui layouts ,cntls,webservices examples codes
Android ui layouts ,cntls,webservices examples codesAndroid ui layouts ,cntls,webservices examples codes
Android ui layouts ,cntls,webservices examples codesAravindharamanan S
 
Intro to jQuery @ Startup Institute
Intro to jQuery @ Startup InstituteIntro to jQuery @ Startup Institute
Intro to jQuery @ Startup InstituteRafael Gonzaque
 

Similaire à JDI 2.0 Architecture Overview (20)

Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using Cucumber
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Started
 
Shall we search? Lviv.
Shall we search? Lviv. Shall we search? Lviv.
Shall we search? Lviv.
 
Creating Professional Applications with the LinkedIn API
Creating Professional Applications with the LinkedIn APICreating Professional Applications with the LinkedIn API
Creating Professional Applications with the LinkedIn API
 
The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14
 
The Open & Social Web - Kings of Code 2009
The Open & Social Web - Kings of Code 2009The Open & Social Web - Kings of Code 2009
The Open & Social Web - Kings of Code 2009
 
Testing mit Codeception: Full-stack testing PHP framework
Testing mit Codeception: Full-stack testing PHP frameworkTesting mit Codeception: Full-stack testing PHP framework
Testing mit Codeception: Full-stack testing PHP framework
 
Operational API design anti-patterns (Jason Harmon)
Operational API design anti-patterns (Jason Harmon)Operational API design anti-patterns (Jason Harmon)
Operational API design anti-patterns (Jason Harmon)
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePoint
 
Play framework
Play frameworkPlay framework
Play framework
 
Introducing Hangout Apps
Introducing Hangout AppsIntroducing Hangout Apps
Introducing Hangout Apps
 
APIdays Helsinki 2019 - API Versioning with REST, JSON and Swagger with Thoma...
APIdays Helsinki 2019 - API Versioning with REST, JSON and Swagger with Thoma...APIdays Helsinki 2019 - API Versioning with REST, JSON and Swagger with Thoma...
APIdays Helsinki 2019 - API Versioning with REST, JSON and Swagger with Thoma...
 
Finding things on the web with BOSS
Finding things on the web with BOSSFinding things on the web with BOSS
Finding things on the web with BOSS
 
Google I/O 2012 - Protecting your user experience while integrating 3rd party...
Google I/O 2012 - Protecting your user experience while integrating 3rd party...Google I/O 2012 - Protecting your user experience while integrating 3rd party...
Google I/O 2012 - Protecting your user experience while integrating 3rd party...
 
Fully Tested: From Design to MVP In 3 Weeks
Fully Tested: From Design to MVP In 3 WeeksFully Tested: From Design to MVP In 3 Weeks
Fully Tested: From Design to MVP In 3 Weeks
 
JBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
JBUG 11 - Django-The Web Framework For Perfectionists With DeadlinesJBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
JBUG 11 - Django-The Web Framework For Perfectionists With Deadlines
 
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
jsSaturday - PhoneGap and jQuery Mobile for SharePoint 2013
 
Android ui layouts ,cntls,webservices examples codes
Android ui layouts ,cntls,webservices examples codesAndroid ui layouts ,cntls,webservices examples codes
Android ui layouts ,cntls,webservices examples codes
 
Intro to jQuery @ Startup Institute
Intro to jQuery @ Startup InstituteIntro to jQuery @ Startup Institute
Intro to jQuery @ Startup Institute
 

Plus de COMAQA.BY

Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...COMAQA.BY
 
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...COMAQA.BY
 
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...COMAQA.BY
 
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важностьRoman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важностьCOMAQA.BY
 
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...COMAQA.BY
 
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...COMAQA.BY
 
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.COMAQA.BY
 
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.COMAQA.BY
 
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...COMAQA.BY
 
Моя роль в конфликте
Моя роль в конфликтеМоя роль в конфликте
Моя роль в конфликтеCOMAQA.BY
 
Организация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиковОрганизация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиковCOMAQA.BY
 
Развитие или смерть
Развитие или смертьРазвитие или смерть
Развитие или смертьCOMAQA.BY
 
Системный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестовСистемный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестовCOMAQA.BY
 
Эффективная работа с рутинными задачами
Эффективная работа с рутинными задачамиЭффективная работа с рутинными задачами
Эффективная работа с рутинными задачамиCOMAQA.BY
 
Как стать синьором
Как стать синьоромКак стать синьором
Как стать синьоромCOMAQA.BY
 
Open your mind for OpenSource
Open your mind for OpenSourceOpen your mind for OpenSource
Open your mind for OpenSourceCOMAQA.BY
 
JDI 2.0. Not only UI testing
JDI 2.0. Not only UI testingJDI 2.0. Not only UI testing
JDI 2.0. Not only UI testingCOMAQA.BY
 
Out of box page object design pattern, java
Out of box page object design pattern, javaOut of box page object design pattern, java
Out of box page object design pattern, javaCOMAQA.BY
 
Static and dynamic Page Objects with Java \ .Net examples
Static and dynamic Page Objects with Java \ .Net examplesStatic and dynamic Page Objects with Java \ .Net examples
Static and dynamic Page Objects with Java \ .Net examplesCOMAQA.BY
 
Design Patterns for QA Automation
Design Patterns for QA AutomationDesign Patterns for QA Automation
Design Patterns for QA AutomationCOMAQA.BY
 

Plus de COMAQA.BY (20)

Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
 
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
 
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
 
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важностьRoman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
 
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
 
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
 
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
 
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
 
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
 
Моя роль в конфликте
Моя роль в конфликтеМоя роль в конфликте
Моя роль в конфликте
 
Организация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиковОрганизация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиков
 
Развитие или смерть
Развитие или смертьРазвитие или смерть
Развитие или смерть
 
Системный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестовСистемный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестов
 
Эффективная работа с рутинными задачами
Эффективная работа с рутинными задачамиЭффективная работа с рутинными задачами
Эффективная работа с рутинными задачами
 
Как стать синьором
Как стать синьоромКак стать синьором
Как стать синьором
 
Open your mind for OpenSource
Open your mind for OpenSourceOpen your mind for OpenSource
Open your mind for OpenSource
 
JDI 2.0. Not only UI testing
JDI 2.0. Not only UI testingJDI 2.0. Not only UI testing
JDI 2.0. Not only UI testing
 
Out of box page object design pattern, java
Out of box page object design pattern, javaOut of box page object design pattern, java
Out of box page object design pattern, java
 
Static and dynamic Page Objects with Java \ .Net examples
Static and dynamic Page Objects with Java \ .Net examplesStatic and dynamic Page Objects with Java \ .Net examples
Static and dynamic Page Objects with Java \ .Net examples
 
Design Patterns for QA Automation
Design Patterns for QA AutomationDesign Patterns for QA Automation
Design Patterns for QA Automation
 

Dernier

IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119APNIC
 
TRENDS Enabling and inhibiting dimensions.pptx
TRENDS Enabling and inhibiting dimensions.pptxTRENDS Enabling and inhibiting dimensions.pptx
TRENDS Enabling and inhibiting dimensions.pptxAndrieCagasanAkio
 
Company Snapshot Theme for Business by Slidesgo.pptx
Company Snapshot Theme for Business by Slidesgo.pptxCompany Snapshot Theme for Business by Slidesgo.pptx
Company Snapshot Theme for Business by Slidesgo.pptxMario
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
Unidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptxUnidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptxmibuzondetrabajo
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 
ETHICAL HACKING dddddddddddddddfnandni.pptx
ETHICAL HACKING dddddddddddddddfnandni.pptxETHICAL HACKING dddddddddddddddfnandni.pptx
ETHICAL HACKING dddddddddddddddfnandni.pptxNIMMANAGANTI RAMAKRISHNA
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 

Dernier (11)

IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119IP addressing and IPv6, presented by Paul Wilson at IETF 119
IP addressing and IPv6, presented by Paul Wilson at IETF 119
 
TRENDS Enabling and inhibiting dimensions.pptx
TRENDS Enabling and inhibiting dimensions.pptxTRENDS Enabling and inhibiting dimensions.pptx
TRENDS Enabling and inhibiting dimensions.pptx
 
Company Snapshot Theme for Business by Slidesgo.pptx
Company Snapshot Theme for Business by Slidesgo.pptxCompany Snapshot Theme for Business by Slidesgo.pptx
Company Snapshot Theme for Business by Slidesgo.pptx
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
Unidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptxUnidad 4 – Redes de ordenadores (en inglés).pptx
Unidad 4 – Redes de ordenadores (en inglés).pptx
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
ETHICAL HACKING dddddddddddddddfnandni.pptx
ETHICAL HACKING dddddddddddddddfnandni.pptxETHICAL HACKING dddddddddddddddfnandni.pptx
ETHICAL HACKING dddddddddddddddfnandni.pptx
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 

JDI 2.0 Architecture Overview

  • 2. Chief QA Automation In Testing almost 13 years In Testing Automation 11 years ROMAN IOVLEV roman.Iovlev roman.Iovlev.jdi@gmail.com
  • 4. 4
  • 5. 1. Open EpamGithub site https://epam.github.io/JDI 2. Click user icon 3. Login as User (name: epam, password: 1234) 4. Select Contacts page in sidebar menu 5. Check that Contacts page opened 6. Fill contacts form with: gender = "Male"; religion = "Other"; wheather = "Sun, Snow"; passport = "true"; name = "Roman"; lastName = "Iovlev"; position = "QA Automation"; number = "4321"; seria = "123456"; description = "JDI awesome"; 7. Check that contact form filled with expected data: gender = "Male"; religion = "Other"; wheather = "Sun, Snow"; passport = "true"; name = "Roman"; lastName = "Iovlev"; position = "QA Automation"; number = "4321"; seria = "123456"; description = "JDI awesome"; 5 TEST SCENARIO
  • 6. 6
  • 7. 7 LOGGING AND REPORTING === START LoginTest.loginTest === Home Page open https://epam.github.io/JDI/index.html Login Home Page Check 'Home Page' opened === END LoginTest.loginTest (00:07.714) === LOGS REPORTINGPAGE OBJECTS
  • 8. 8 PROJECT ARCHITECTURE 1. AUT model (PageObjects, ServiceObjects) 2. Test scenarios (plain, Steps template, BDD) 3. Settings (prop files, in-code) 4. Utilities 5. Data Management (DDT) 6. Logging (log4j, …) 7. Reporting (Pass/Fail, Allure, RP, …) 8. CI / CD (Jenkins, TeamCity …)
  • 10. • Implemented UI Elements • UI Elements based PageObjects with cascade initialization (WebSite.init(EpamSite.class)) • Cascade locators inheritance • No more sleeps or waits • Implemented complex elements (Form, Table) • Automatic Latest Driver download • Customizable elements and actions 10 JDI 1.X MAIN FEATURES JDI 1.X
  • 11. • Business actions detailed log with no effort • Native integration with reporting (Allure, RP) • Cross language/version tests • Enums based actions • Entity Driven Testing native support • File based properties • Customizable page loading and get element strategies • Support Java and C# 11 JDI 1.X MAIN FEATURES JDI 1.X
  • 12.  New architecture  New strategy  PageObjects generator  Cucumber tests manager  Selenium-Selenide integration  JDI Http  JDI on Python 12 JDI 2.0 FEATURES JDI 2.0
  • 14. Test automation in 30 seconds https://github.com/jdi-templates/jdi2-template 14 TESTS VIA TEMPLATE 101
  • 15. Test automation in 30 seconds https://github.com/jdi-templates/jdi2-template 15 MORE TEMPLATES More templates (https://github.com/jdi-templates/ ) • Web UI • Web Services • Mobile • Desktop …
  • 16. 16 TOOLS AROUND JDI • PO generators: Web, Http etc. • Automated tests by Manual QA • Smoke tests generators: Web, Http etc. • …
  • 17. • Simple and full documentation • Youtube channel with examples, tips & tricks • JDI Light • Social networking • … 17 MORE OBVIOUS https://github.com/jdi-testing https://vk.com/jdi_framework http://jdi.epam.com/ https://www.facebook.com /groups/jdi.framework/
  • 19. • Move all common functional to Core • Simplify new Engines implementation • Separate repositories for different languages and functions • Use interface default implementations for methods reusage • Add AOP pre/post processors for code simplification 19 JDI 2.0 ARCHITECTURE CHANGES
  • 20. Aspect Oriented Programming 20 AOP public String validatePurchase(Object obj) { … } @Step public void before(JoinPoint j) { log.info(“Do action: ”, methodName(j)); } public void after(JoinPoint j, Object result) { log.info(“Success. Result: ”, result); }
  • 25. 25 JDI PO PLUGIN GENERATE
  • 26. <input type=“button” value=“Next”> <input type=“button” value=“Previous”> <button class=“btn”>Submit</button> 26 PO GENERATOR RULES "type":"Button", "name": “value", "css": “input[type=button]“ "type":"Button", "name": “text", "css": “button.btn" @Findby(css=“input[type=button][value=Next]”) public Button next; @Findby(css=“input[type=button][value=Previous]”) public Button previous; @Findby(xpath=“//button[@class=‘btn’ and text()=‘Submit’]”) public Button submit;
  • 27. new PageObjectsGenerator(rules, urls, output, package) .generatePageObjects(); 27 PAGE OBJECTS GENERATOR LIBRARY RULES https://domain.com/ https://domain.com/login https://domain.com/shop https://domain.com/about URLS {"elements": [{ "type":"Button", "name": “value", "css": “input[type=button]" }, … ]} OUTPUT src/main/java PACKAGE com.domain
  • 29. Chrome JDI PO Gen plugin: https://github.com/anisa07/jdi-plugin PO Gen Java Library: https://github.com/jdi-testing/jdi-po-generator 29 LINKS
  • 31. • ServiceObject model • Simplified work with response • Entity driven • Simple performance testing • Integrated logging and reporting 31 JDI HTTP VS REST ASSURED
  • 32. 32 SWAGGER TO JDI PO @ServiceDomain("http://httpbin.org/") public class ServiceExample { @ContentType(JSON) @GET("/get/{projectId}/{userId}") @Headers({ @Header(name = "Name", value = "Roman"), @Header(name = "Id", value = "Test") }) static RestMethod<Info> getInfo; @Header(name = "Type", value = "Test") @POST("/post") RestMethod postMethod; @PUT("/put") RestMethod putMethod; @PATCH("/patch") RestMethod patch; @DELETE("/delete") RestMethod delete; @GET("/status/%s") RestMethod status; @BeforeSuite public static void beforeSuite() { init(ServiceExample.class); …. }
  • 33. 33 SIMPLE SERVICE TEST @Test public void statusTest() { RestResponse resp = service.status.call("503"); resp.isStatus(SERVER_ERROR); //resp.isOk(); assertEquals(resp.status.code, 503); assertEquals(resp.status.type, SERVER_ERROR); resp.isEmpty(); } @Test public void htmlBodyParseTest() { RestResponse responce = service.getBook.call(); response.isOk().body("name", equalTo("Herman Melville - Moby-Dick“)); }
  • 34. @Test public void entityTest() { Info info = getInfo.asData(Info.class); assertEquals(info.url, "http://httpbin.org/get"); assertEquals(info.headers.Host, "httpbin.org"); assertEquals(info.headers.Id, "Test"); assertEquals(info.headers.Name, "Roman"); } 34 ENTITY DRIVEN
  • 35. @Test public void simplePerformanceTest() { PerformanceResult pr = loadService(3600, getInfo); System.out.println("Average time: " + pr.AverageResponseTime + "ms"); System.out.println("Requests amount: " + pr.NumberOfRequests); Assert.assertTrue(pr.NoFails(), "Number of fails: " + pr.NumberOfFails); } 35 SIMPLE PERFORMANCE TESING @Test public void isAliveTest() { anyMethod.isAlive()); }
  • 40. JDI 2.0 IN EXAMPLES 3 MARCH 2018 COMING SOON
  • 42. @Image(“/src/test/resources/submitbtn.png”) @FindBy(text = “Submit”) public Button submit; 42 VERIFY LAYOUT submit.isDisplayed(); submit.assertDisplayed();
  • 43. • Verify layout • JDI Light • Replace Selenium/Selenide etc. • JDI Test Manager and BDD Tests generator • Automated tests by manual QA • No Effort testing: JDI Smoke tests generator • Selenoid integration, Docker etc. 43 PLANS

Notes de l'éditeur

  1. Работаю в компании Epam в