A pure Clojure implementation of the Webdriver protocol, named after Etaoin Shrdlu — a typing machine that came to life after a mysterious note was produced on it.
Use the Etaoin library to automate a browser, test your frontend behaviour, simulate human actions or whatever you want.
Benefits:
- Selenium-free: no big dependencies, no tons of downloaded jars, etc.
- Lightweight, fast. Simple, easy to understand.
- Compact: just one main namespace with a couple of helpers.
Capabilities:
- Currently supports Chrome, Firefox, Safari, and Edge.
- Can either connect to a remote WebDriver process, or have Etaoin launch one for you.
- Run your unit tests directly from Emacs by pressing C-t t as usual.
- Can imitate human-like behaviour (delays, typos, etc).
Renode is an open source software development framework with commercial support from Antmicro that lets you develop, debug and test multi-node device systems reliably, scalably and effectively.
Renode strengths:
- full determinism of execution, shared virtual time
- transparent & robust debugging, tracing, analysis, even in multi-node setups
- easy integration with your everyday tools, plugins
- rich model abstractions with additional functionality "for free" + modular platform
description format - automated tests and CI integrations, other collaboration features
It lets you run, debug and test unmodified embedded software on your PC - from bare System-on-Chips, through complete devices to multi-node systems.
Sometimes tests need to invoke functionality which depends on global settings or which invokes code which cannot be easily tested such as network access. The monkeypatch fixture helps you to safely set/delete an attribute, dictionary item or environment variable, or to modify sys.path for importing.
The monkeypatch fixture provides these helper methods for safely patching and mocking functionality in tests:
- monkeypatch.setattr(obj, name, value, raising=True)
- monkeypatch.delattr(obj, name, raising=True)
- monkeypatch.setitem(mapping, name, value)
- monkeypatch.delitem(obj, name, raising=True)
- monkeypatch.setenv(name, value, prepend=None)
- monkeypatch.delenv(name, raising=True)
- monkeypatch.syspath_prepend(path)
- monkeypatch.chdir(path)
- monkeypatch.context()
All modifications will be undone after the requesting test function or fixture has finished. The raising parameter determines if a KeyError or AttributeError will be raised if the target of the set/deletion operation does not exist.
The unittest unit testing framework was originally inspired by JUnit and has a similar flavor as major unit testing frameworks in other languages. It supports test automation, sharing of setup and shutdown code for tests, aggregation of tests into collections, and independence of the tests from the reporting framework.
To achieve this, unittest supports some important concepts in an object-oriented way:
- test fixture
A test fixture represents the preparation needed to perform one or more tests, and any associated cleanup actions. This may involve, for example, creating temporary or proxy databases, directories, or starting a server process. - test case
A test case is the individual unit of testing. It checks for a specific response to a particular set of inputs. unittest provides a base class, TestCase, which may be used to create new test cases. - test suite
A test suite is a collection of test cases, test suites, or both. It is used to aggregate tests that should be executed together. - test runner
A test runner is a component which orchestrates the execution of tests and provides the outcome to the user. The runner may use a graphical interface, a textual interface, or return a special value to indicate the results of executing the tests.
Reference:
- python3 doc: unittest.mock — getting started
- python3 doc: unittest.mock — mock object library
- python3 doc: unittest — Unit testing framework - assert methods
- python3 doc: unittest — Unit testing framework - class unittest.TestCase(methodName='runTest')
Testing applications has become a standard skill set required for any competent developer today. The Python community embraces testing, and even the Python standard library has good inbuilt tools to support testing. In the larger Python ecosystem, there are a lot of testing tools. Pytest stands out among them due to its ease of use and its ability to handle increasingly complex testing needs.


Test Anything Protocol
TAP, the Test Anything Protocol, is a simple text-based interface between testing modules in a test harness. It decouples the reporting of errors from the presentation of the reports.
One of its major uses is for noise reduction; when you have a suite of many tests, making them TAP producers and using a TAP consumer to view them helps ensures that you will see everything you need to notice and diagnose breakage without being distracted by a flood of irrelevant success messages. It can assist other forms of analysis and statistics-gathering as well.
TAP started life as part of the test harness for Perl but now has implementations in C, C++, Python, PHP, Perl, Java, JavaScript, Go, Rust, and others. Consumers and producers do not have to be written in the same language to interoperate.
Bats: Bash Automated Testing System
Bats is a TAP-compliant testing framework for Bash. It provides a simple way to verify that the UNIX programs you write behave as expected.
A Bats test file is a Bash script with special syntax for defining test cases. Under the hood, each test case is just a function with a description.
Molecule project is designed to aid in the development and testing of Ansible roles.
Molecule provides support for testing with multiple instances, operating systems and distributions, virtualization providers, test frameworks and testing scenarios.
Molecule encourages an approach that results in consistently developed roles that are well-written, easily understood and maintained.
Molecule supports only the latest two major versions of Ansible (N/N-1), meaning that if the latest version is 2.9.x, we will also test our code with 2.8.x.
Once installed, the command line can be called using any of the methods below:
molecule ...
python3 -m molecule ... # python module calling method
Monkeytype is a minimalistic typing test, featuring many test modes, an account system to save your typing speed history and user configurable features like themes, a smooth caret and more.
word set
By default, this website uses the most common 200 words in the English language to generate its tests. You can change to an expanded set (1000 most common words) in the options, or change the language entirely.
keybinds
You can usetabandenter(or justtabif you have quick tab mode enabled) to restart the typing test. Open the command line by pressingctrl/cmd+shift+poresc- there you can access all the functionality you need without touching your mouse
stats
wpm - total amount of characters in the correctly typed words (including spaces), divided by 5 and normalised to 60 seconds.
raw wpm - calculated just like wpm, but also includes incorrect words.
acc - percentage of correctly pressed keys.
char - correct characters / incorrect characters. Calculated after the test has ended.
consistency - based on the variance of your raw wpm. Closer to 100% is better. Calculated using the coefficient of variation of raw wpm and mapped onto a scale from 0 to 100.
results screen
After completing a test you will be able to see your wpm, raw wpm, accuracy, character stats, test length, leaderboards info and test info. (you can hover over some values to get floating point numbers). You can also see a graph of your wpm and raw over the duration of the test. Remember that the wpm line is a global average, while the raw wpm line is a local, momentary value. (meaning if you stop, the value is 0)
bug report or feature request
If you encounter a bug, or have a feature request - join the Discord server, send me an email, a direct message on Twitter or create an issue on GitHub.
Zuul is a Project Gating System. That’s like a CI or CD system, but the focus is on testing the future state of code repositories.
A gating system doesn’t just test a proposed change; it tests the proposed future state of multiple branches and repositories with any number of in-flight changes and their dependencies. And the same playbooks used to test software can also be used to deploy it.
Zuul itself is a service which listens to events from various code review systems, executes jobs based on those events, and reports the results back to the code review system. The primary interface for Zuul is the code review system (or systems) so that it fits seamlessly into developer workflows, and a web interface is available for inspecting the current status and browsing build results.
The best way to run Zuul is with a single installation serving as many projects or groups as possible. It is a multi-tenant application that is able to provide as much or as little separation between projects as desired.
Molecule project is designed to aid in the development and testing of Ansible roles.
Molecule provides support for testing with multiple instances, operating systems and distributions, virtualization providers, test frameworks and testing scenarios.
Molecule encourages an approach that results in consistently developed roles that are well-written, easily understood and maintained.
Molecule supports only the latest two major versions of Ansible (N/N-1), meaning that if the latest version is 2.9.x, we will also test our code with 2.8.x.
Once installed, the command line can be called using any of the methods below:
molecule
Der Supermoto-Gedanke lebt weiter, hauptsächlich in für Motorradfahrerverhältnisse recht jungen Köpfen. Er lebt dort aber gefährlich, denn jede Hard-Enduro, die sich zur Supermoto eignen würde, wird mit einer lächerlichen Leistung zugelassen, die nur dazu da ist, dass der Hersteller seine Rennsport-Zulassung dafür erhält. Wenn der Supermoto-Freund sich so ein Ding holt, kann er verschiedene Dinge über Straßenlegalität lernen, die meisten davon unerfreulich und teuer für ihn. Es gibt die Egal-TÜVer noch, die dir alles zulassen. Das funktioniert als Camouflage auch so lala. Du solltest das nur nicht mit Legalität verwechseln. Aus allen diesen Gründen gibt es nach einer Produktionspause wieder eine KTM 690 SMC R. Sie wiegt mit rund 160 kg eher schwer für eine Supermoto. Aber sie ist das einzig verbliebene legale Modell, wenn du 200-kg-Geräte wie Ducatis Hypermotard nicht mitzählen willst. Die Ducati ist in sich ein gutes Motorrad geworden, nur wie bei der Legalität: Verwechsle die Supermoto-Camouflage nicht damit, dass das auch wie eine fahren würde.
This is a web service for checking and visualising compliance status of XMPP servers, with XEPs (XMPP Extension Protocols), made as a part of Google Summer of Code 2018 for Conversations.im by Rishi Raj. The code for this website, along with a command line tool to check compliance of your server locally, is available under a BSD-3 License on Github. If you want to contribute to the project, read our contributing guide
phpipam-pyclient is a REST-client CLI tool to interface with phpipam REST API. phpipam-pyclient leverages python fire and requests under the hood, some high level functions have been implementend to allow the user to quickly query certain information about the devices on phpipam. In addition, you can use this library to build your Ansible inventory by filtering a field/column of the devices on phpipam.
Shell script to test the performance of the most popular DNS resolvers from your location.
Includes by default:
CloudFlare 1.1.1.1
Google 8.8.8.8
Quad9 9.9.9.9
OpenDNS
Norton
CleanBrowsing
Yandex
AdGuard
Neustar
Comodohey is a tiny program that sends some load to a web application.
hey was originally called boom and was influenced from Tarek Ziade's tool at tarekziade/boom. Using the same name was a mistake as it resulted in cases where binary name conflicts created confusion. To preserve the name for its original owner, we renamed this project to hey.
Collecting benchmark results is the first step to solving disk I/O performance problems. Unfortunately, many bug reports and performance investigations fall down at the first step because bogus benchmark data is collected. This post explains common mistakes when running disk I/O benchmarks.
To give you a little bit of background when the OSD writes into his journal it uses D_SYNC and O_DIRECT. Writing with O_DIRECT bypasses the Kernel page cache, while D_SYNC ensures that the command won’t return until every single write is complete. So yes, basically the OSD forces all the writes to be flushed prior to start the next IO.
Siege is an http load testing and benchmarking utility. It was designed to let web developers measure their code under duress, to see how it will stand up to load on the internet. Siege supports basic authentication, cookies, HTTP, HTTPS and FTP protocols. It lets its user hit a server with a configurable number of simulated clients. Those clients place the server “under siege.”
