Galen alternatives and similar libraries
Based on the "Testing" category.
Alternatively, view Galen alternatives based on common mentions on social networks and blogs.
-
Apache JMeter
Apache JMeter open-source load testing tool for analyzing and measuring the performance of a variety of services -
TestContainers
Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. -
MockServer
MockServer enables easy mocking of any system you integrate with via HTTP or HTTPS with clients written in Java, JavaScript and Ruby. MockServer also includes a proxy that introspects all proxied traffic including encrypted SSL traffic and supports Port Forwarding, Web Proxying (i.e. HTTP proxy), HTTPS Tunneling Proxying (using HTTP CONNECT) and SOCKS Proxying (i.e. dynamic port forwarding). -
PowerMock
PowerMock is a Java framework that allows you to unit test code normally regarded as untestable. -
Pact JVM
JVM version of Pact. Enables consumer driven contract testing, providing a mock service and DSL for the consumer project, and interaction playback and verification for the service provider project. -
Scott Test Reporter
Never debug a test again: Detailed failure reports and hassle free assertions for Java tests - Power Asserts for Java -
pojo-tester
Java testing framework for testing pojo methods. It tests equals, hashCode, toString, getters, setters, constructors and whatever you report in issues ;)
WorkOS - The modern identity platform for B2B SaaS
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Galen or a related project?
Popular Comparisons
README
Galen Framework
Galen is an open-source tool for testing layout and responsive design of web applications. It is also a powerfull functional testing framework. For more information visit http://galenframework.com
How does it work?
Galen Framework uses Selenium in order to open web browser and select the tested elements on page. It has a special language to describe the layout of web page for different browser sizes. You just need to define your own tags for devices and sizes and then using the galen spec language write checks for each element on page. The best way to test the layout is to check location and dimensions of elements relatively to each other. Here is a small example of basic syntax.
@objects
header id header
menu css #menu
content id content
side-panel id side-panel
footer id footer
= Main section =
@on *
header:
inside screen 0px top, 0px left, 0px right
menu:
inside screen 0px left right
below header 0px
content:
below menu 0px
inside screen 0px left
@on desktop
side-panel:
below menu 0px
inside screen 0px right
width 300px
near content 0px right
@on mobile
content, side-panel:
width 100% of screen/width
side-panel:
below content 0px
And here is a more advanced spec:
# example of using custom rules (functions)
@set userMargin 5 to 10 px
@objects
user-* div.users-list .user
@rule %{pattern} are below each other by %{distance} and aligned
@forEach [pattern] as object, prev as prevObject
${object}:
below ${prevObject} ${distance}
aligned vertically all ${prevObject}
= Checking all users =
| user-* are below each other by ${userMargin} and aligned
Conditional statements:
@objects
banner-container #banner-container
= Banner section =
@if ${isVisible("banner-container")}
banner-container:
image file imgs/banner.png, error 5%
For more information please read Galen Framework Documentation
Contributing
If you want to contribute to this project just look for current open issues. Please let know in the comments of the issue that you are going to pick it up because somebody could already work on it. In the end just send the pull request. By the way the feature that you are going to work on should not just solve your particular problem. It should be extendable and configurable. The github issues is the best place to debate on the feature and discuss how it should be implemented.
All the work on the next version is performed in corresponding release branch (e.g. release-2.5). The master branch reflects the current live version. Most of the pull requests are accepted on release branch and not on master.
If you would like to make a change to the Galen Framework website (http://galenframework.com) you can do it here https://github.com/galenframework/galenframework.com
Add GPG key to your maven settings.xml:
<properties>
<gpg.keyname>C78F3CC4</gpg.keyname>
<gpg.passphrase>Password</gpg.passphrase>
...
Setup the dependencies
mvn clean install
The test can be run via
mvn verify
To run integrations tests against chrome:
mvn clean verify -Dwebdriver.chrome.driver=/opt/dev/chromedriver -Dselenium.browser=chrome
Please ensure that you downloaded chromedriver, see here
Also you need Maven 3.3 or greater and Node with some modules:
sudo npm install -g grunt-cli
sudo npm install -g bower
Building
This project is based on Maven. You can use both Intellij or Eclipse for it. It is being developed in Linux so all the assembling scripts are in bash. In order to assemble the dist with zip archives just run ./makeDist.sh
and it will create a dist folder with both binary and source folders and it will prepare zip archives there as well. If you want to quickly test the concept and install galen right after the assembling you can use script ./assembleAndInstall.sh
. It uses makeDist.sh
and then just invokes sudo ./install.sh
Testing
There are two levels of testing. The first one is just the regular mvn clean test
. But as there is a lot of Javascript code - you need Mocha. The tests are located in folder src/test/js/
. To run the just go to that folder and execute testJs.sh
License
Galen Framework is licensed under Apache License, Version 2.0
*Note that all licence references and agreements mentioned in the Galen README section above
are relevant to that project's source code only.