You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This toolkit is really a culmination in 10 years of working with teams building automated UI checks with Selenium. We've found time and again that we refactor or rewrite "frameworks" that wrap the entirity of the Selenium API (to little benefit). On top of this, we see so much brittle code that we wanted to put something out there that people could use and benefit from our experience. As a result, this toolkit provides an simple, lightweight (and well structured) way to launch, control and configure tests for Selenium/WebDriver in Java. It's a curation of all of the little libraries and fixes we've used over the years. So if you're at the start of your automation journey or you're just bored of writing the same "framework" over and over again, you're in the right place.
8
+
**We've released version 1.0.0!**
9
+
10
+
This toolkit is really a culmination of 10 years of working with teams building automated UI checks with Selenium. We've found time and again that we refactor or rewrite "frameworks" that wrap the entirity of the Selenium API (to little benefit). On top of this, we see so much brittle code that we wanted to put something out there that people could use and benefit from our experience. As a result, this toolkit provides an simple, lightweight (and well structured) way to launch, control and configure checks for Selenium/WebDriver in Java. It's a curation of all of the little libraries and fixes we've used over the years. So if you're at the start of your automation journey or you're just bored of writing the same "framework" over and over again, you're in the right place.
9
11
10
12
You'll find no junk (hopefully) here, but it's a fairly opinionated approach:
11
13
- There's no mass "wrapper" on Selenium - that's dumb
@@ -15,36 +17,38 @@ You'll find no junk (hopefully) here, but it's a fairly opinionated approach:
15
17
- We provide random test data generators from Mockneat (https://github.com/nomemory/mockneat) and UK Gov (https://github.com/dwp/nino-format-validation) as well as some of our own (for dates and stuff)
16
18
- There's an externalised (and overridable) configuration system, based on JSON
17
19
- We handle providing JUnit (we use version 5), Selenium and Hamcrest (for writing good assertions)
20
+
- Our framework is unit and integration checked as well as monitored for code quality; we treat this as a production code base, not a second class citizen.
21
+
- We have a (developing) open roadmap in GitHub Issues (click the Issues tab to see what we have so far)
18
22
19
23
Coming soon:
20
-
- SauceLabs and BrowserStack configuration.
21
-
-Published artefacts to Maven Central (so you can get the framework without a GitHub membership).
22
-
-Tutorials for writing tests using our toolkit.
23
-
-Builds for Java 13 and older versions of Java.
24
+
- SauceLabs and BrowserStack configuration (issues #2 and #3).
25
+
-Instrumentation of the framework components to help visualise slow or under performing checks over time (issue #44).
26
+
-Published artefacts to Maven Central (so you can get the framework without a GitHub membership) (issue #27).
27
+
-Expand documentation and tutorials (issue #45)
24
28
- And lots more marked in the issues list: https://github.com/digital-delivery-academy/selenium-pom-framework/issues
25
29
26
-
It really is a one stop shop for getting up and running with a robust toolkit for building Selenium tests, without the massive investment that many business make in hand rolling their own.
30
+
It really is a one stop shop for getting up and running with a robust toolkit for building Selenium checks, without the massive investment that many business make in hand rolling their own.
27
31
28
-
All of our code is unit or integration tested.
32
+
All of our code is unit or integration checked.
29
33
30
34
It's highly unlikely that you need anything more complicated than this. If you do, then you probably have the scope of what you're trying to check a little wrong.
31
35
32
-
Remember that testing through a browser is brittle, slow and should be at the very top of your automation pyramid.
36
+
Remember that checking through a browser is brittle, slow and should be at the very top of your automation pyramid.
33
37
34
-
5-10% of all of your projects automated tests (if you're building bespoke software) should be here.
35
-
If you end up with 500 Selenium tests then it's quite possible that you took a wrong turn. We'd be happy to talk about getting you back on the right path (get in touch: [email protected]).
38
+
5-10% of all of your projects automated checks (if you're building bespoke software) should be here.
39
+
If you end up with 500 Selenium checks then it's quite possible that you took a wrong turn. We'd be happy to talk about getting you back on the right path (get in touch: [email protected]).
36
40
37
41
If you have questions please feel free to contact me ([email protected]) or if you find issues raise a PR or
38
42
submit an issue ticket.
39
43
40
44
## Documentation
41
45
42
46
- A full reference guide is here: https://github.com/digital-delivery-academy/selenium-pom-framework/wiki
43
-
- Technical reference documentation (javadocs) are here: https://digital-delivery-academy.github.io/selenium-pom-framework/javadoc-0.0.13
47
+
- Technical reference documentation (javadocs) are here: https://digital-delivery-academy.github.io/selenium-pom-framework/javadoc-1.0.0
44
48
45
-
## Example tests
49
+
## Example checks/project
46
50
47
-
See https://github.com/digital-delivery-academy/selenium-pom-example repository for an example of how to write Selenium tests using the Page Object Model. This repository uses this framework.
51
+
See https://github.com/digital-delivery-academy/selenium-pom-example repository for an example of how to write Selenium checks using the Page Object Model. This repository uses this framework.
48
52
49
53
## Usage
50
54
@@ -54,7 +58,7 @@ Put this in your POM.xml.
54
58
<dependency>
55
59
<groupId>uk.co.evoco</groupId>
56
60
<artifactId>selenium-pom-framework</artifactId>
57
-
<version>0.0.13</version>
61
+
<version>1.0.0</version>
58
62
</dependency>
59
63
```
60
64
@@ -107,6 +111,12 @@ An example configuration (`settings.xml`) would be:
107
111
</settings>
108
112
```
109
113
114
+
## References/thanks
115
+
We're using repositories from the guys below to provide some of our features:
116
+
-https://github.com/bonigarcia/webdrivermanager from Boni Garcia (for getting WebDriver binaries in a lovely way)
117
+
-https://github.com/nomemory/mockneat from nomemory (for generating random test data easily)
118
+
-https://github.com/dwp/nino-format-validation from UK Gov. Department for Work and Pensions (for checking Ninos)
0 commit comments