Top 23 test-automation Open-Source Projects
-
Project mention: Extreme Explorations of TypeScript's Type System | news.ycombinator.com | 2022-06-27
-
For those using a "release" testBuildType for integration tests, what does your mocking setup look like? My app is stuck on Mockito 2.23.4, because higher (> 1.8.12) versions of Byte Buddy required beyond that point [do not play nicely with non-debuggable APKs](https://github.com/mockito/mockito/issues/2302). Solutions I've considered so far:
-
Appwrite
Appwrite - The Open Source Firebase alternative introduces iOS support . Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!
-
Project mention: Detox : Gray box end-to-end test automation framework for react-native apps | dev.to | 2022-06-03
Copy & paste the content of the equivalent file from the detox example app for RN, into it. Don't forget to change the package name to your project's package name.
-
Project mention: Why You Always Have To Close Your Article With A Call To Action AKA A Brief Introduction To Hashnode Widgets By Miki Szeles | dev.to | 2022-03-18
Here it is: Contribute to the open-source Selenideium Element Inspector Chrome Extension, with which test automation teams can save hours daily by automatically generating all the relevant selectors for Selenide, Selenium, Cypress, Playwright, Squish and TestCafe.
-
Project mention: Open Source iOS remote control app for macOS, Windows and Linux | reddit.com/r/iosgaming | 2021-12-30
I have been using Airtest IDE https://github.com/AirtestProject/Airtest as device automation tool for Android and iOS for the last little while, basically it lets you write Python code which can do device automation with image recognition etc. It works pretty well on Android Emulators so I used to use it to setup macro farming where the built-in macro/function was lacking as it doesn't support image recognition. However on iOS devices it is extremely slow apparently due to how XCUITest was designed so it literally takes like a minute for any interactions to execute.
-
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.
The list goes on. Check out the full list of Testcontainer modules.
-
Project mention: Framework for end to end testing of microservices | reddit.com/r/softwaretesting | 2022-07-03
Take a look at Karate.
-
Scout APM
Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.
-
Project mention: How To Modify HTTP Request Headers In JAVA Using Selenium WebDriver? | dev.to | 2022-05-09
The prerequisites to configure REST Assured with your project in any IDE (e.g., Eclipse) is fairly easy. After setting up Java, Eclipse, and TestNG, you would need to download the required REST Assured jar files.
-
awesome-test-automation
A curated list of awesome test automation frameworks, tools, libraries, and software for different programming languages. Sponsored by http://sdclabs.com
Project mention: Thursday Daily Thread: Python Careers, Courses, and Furthering Education! | reddit.com/r/Python | 2021-10-28I don't have personal experience, but I have this link bookmarked, might help you: https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md
-
For writing portable, reliable tests for web browsers.
> The web-platform-tests project is a cross-browser test suite for the Web-platform stack. Writing tests in a way that allows them to be run in all browsers gives browser projects confidence that they are shipping software which is compatible with other implementations, and that later implementations will be compatible with their implementations.
https://web-platform-tests.org/
> Tests should be as cross-platform as reasonably possible, working across different devices, screen resolutions, paper sizes, etc. ... Fonts cannot be relied on to be either installed or to have specific metrics. As such, in most cases when a known font is needed, Ahem should be used and loaded as a web font. In other cases, @font-face should be used.
https://web-platform-tests.org/writing-tests/general-guideli...
-
I started looking for UI testing solutions for desktop applications. I quickly discarded expensive UI testing suites. WinAppDriver was very interesting, but one of the requirements was to add some kind of identifiers on every UI element that we wanted to interact with. This would have required a huge effort from the team.
-
Project mention: Beautiful Soup: We called him Tortoise because he taught us | news.ycombinator.com | 2022-06-08
In those cases you might want to check out SeleniumBase: https://seleniumbase.io/
-
Project mention: A dilemma: What to do about integration testing for developers. | reddit.com/r/softwaretesting | 2022-02-01
Gauge looks interesting, but reminds me heavily of BDD frameworks - it looks like it's an abstraction layer where instead of writing Gherkin/GWT, the tests are in their specific DSL that's Markdown based?
-
Project mention: Is .NET open? MS pushing a proprietary extension to replace OmniSharp | news.ycombinator.com | 2022-06-16
is `dotnet watch` basically `git ls-files|entr dotnet build` ?
(entr is http://eradman.com/entrproject/ – like inotifywait but easier)
-
-
Project mention: Eskimo is a supercharged mocking server for developers and testers, that aims to abstract the complexities of coding a mock server into simple JSON configurations. | reddit.com/r/node | 2022-01-01
Supercharged? Sounds like a less-featured Mountebank.
-
PHP VCR
Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests.
-
Project mention: The unexpected return of JavaScript for Automation | news.ycombinator.com | 2021-11-26
One really cool little JS library I've been using for a bunch of desktop automation tasks lately is nut.js and the lower level libnut library it's implemented on top of:
https://github.com/nut-tree/nut.js
https://github.com/nut-tree/libnut
It provides a means to send user input (mouse movement/clicks and key presses) and read and react to changes in visual state (through screenshots), and works across Windows, Linux and MacOS. It automates at a much lower level of abstraction than the approaches mentioned in the article that script against programmatic APIs.
What I really like about this lower level approach is that you don't need to get anyone's permission to automate anything, since there's no programmatic API that the system owners has to provide for you and thus can limit or take away when it becomes inconvenient.
Any task that can be accomplished though looking at stuff on the screen and clicking the mouse and pressing keys on a keyboard (i.e. what a real person would do to accomplish the same task) can be automated, and it's actually surprisingly easy and effective to do this with nut.js. What really helps is that OpenCV has become ridiculously good and ridiculously fast at matching/identifying objects from a screenshot, with latencies usually in the low double digits, so latency-based flakiness isn't nearly as much of an issue as I remember it in the old days. I've also played around with OCR with tesseract but haven't had as much success with it in terms of perf, and remember seeing latencies of several seconds for even recognizing a single word from a tiny pre-cropped screenshot containing only the word itself.
The main tradeoff to this approach compared to automation through APIs is that because it works by simulating real user inputs, it's not very amenable to running in the background while a user is actively interacting with the same machine, so a separate machine or VM is often needed. That's an acceptable tradeoff for some use cases but complete deal breaker for others, so YMMV, but just wanted to bring this cool little tool to people's attention.
-
tavern
A command-line tool and Python library and Pytest plugin for automated testing of RESTful APIs, with a simple, concise and flexible YAML-based syntax (by taverntesting)
Project mention: Looking for fast (non-electron) alternative for Postman to test REST API in Windows | reddit.com/r/webdev | 2021-09-19At work we are really not fond of postman, at all. We like Tavern quite a lot https://github.com/taverntesting/tavern
-
-
-
skrape.it
A Kotlin-based testing/scraping/parsing library providing the ability to analyze and extract data from HTML (server & client-side rendered). It places particular emphasis on ease of use and a high level of readability by providing an intuitive DSL. It aims to be a testing lib, but can also be used to scrape websites in a convenient fashion.
-
test-automation related posts
- Keploy
- Data Generator For Unit Tests
- Launch HN: Karate Labs (YC W22) – Open-Source API and UI Test Automation
- GitHub - maxim2266/DIRT: DIRT (DIRectory Tracker): Monitor changes to a directory tree.
- The 'Ahem' Font
- How to get commercial experience in Performance testing and Test Automation?
- Need initial reviews!
Index
What are some of the best open-source test-automation projects? This list will help you:
Project | Stars | |
---|---|---|
1 | Cypress | 39,362 |
2 | Mockito | 13,062 |
3 | Detox | 9,645 |
4 | TestCafe | 9,343 |
5 | Airtest | 6,284 |
6 | TestContainers | 6,106 |
7 | Karate | 6,096 |
8 | REST Assured | 5,933 |
9 | awesome-test-automation | 5,138 |
10 | wpt | 3,914 |
11 | WinAppDriver | 2,817 |
12 | SeleniumBase | 2,813 |
13 | Gauge | 2,728 |
14 | entr | 2,305 |
15 | ltp | 1,797 |
16 | mountebank | 1,731 |
17 | PHP VCR | 1,036 |
18 | nut.js | 936 |
19 | tavern | 878 |
20 | keploy | 845 |
21 | green | 738 |
22 | skrape.it | 524 |
23 | Atata | 424 |
Are you hiring? Post a new remote job listing for free.