Go Software Testing Tools

View 240 business solutions

Browse free open source Go Software Testing Tools and projects below. Use the toggles on the left to filter open source Go Software Testing Tools by OS, license, language, programming language, and project status.

  • Veeam Data Platform v13.1 Icon
    Veeam Data Platform v13.1

    Move workloads across hypervisors and clouds with no vendor lock-in. Try VDP free today.

    Try Veeam Data Platform today. Experience the unified platform that's secure by design, portable by default, and proven to recover clean, fast, and anywhere.
    Try Now
  • MongoDB Atlas runs apps anywhere Icon
    MongoDB Atlas runs apps anywhere

    Deploy in 115+ regions with the modern database for every enterprise.

    MongoDB Atlas gives you the freedom to build and run modern applications anywhere—across AWS, Azure, and Google Cloud. With global availability in over 115 regions, Atlas lets you deploy close to your users, meet compliance needs, and scale with confidence across any geography.
    Start Free
  • 1
    Trivy

    Trivy

    Find vulnerabilities, misconfigurations, secrets, SBOM in containers

    Trivy is the most popular open source security scanner, reliable, fast, and easy to use. Use Trivy to find vulnerabilities & IaC misconfigurations, SBOM discovery, Cloud scanning, Kubernetes security risks,and more. Trivy is praised by professionals from organizations worldwide. Are you a Trivy fan as well? We’d love to hear from you! Trivy detects vulnerabilities from a wide array of operating systems and programming languages, across different versions, and vulnerability sources. Detect common misconfigurations with Trivy, using the same familiar tool and workflow that you already have in place for vulnerabilities. Trivy scans Terraform, CloudFormation, Docker, Kubernetes, and many other IaC configuration files for security issues right alongside vulnerabilities. Trivy IaC is brought to you by the team behind the popular tfsec project. Trivy is a single binary with no dependencies! There’s no database to maintain, no external tools it relies on, no runtime requirements whatsoever.
    Downloads: 384 This Week
    Last Update:
    See Project
  • 2
    MailHog

    MailHog

    Web and API based SMTP testing

    Inspired by MailCatcher, easier to install. Built with Go, MailHog runs without installation on multiple platforms. Run it from Docker Hub or using the provided Dockerfile. The SMTP server starts on port 1025, the HTTP server starts on port 8025, in-memory message storage. ESMTP server implementing RFC5321. Support for SMTP AUTH (RFC4954) and PIPELINING (RFC2920). Web interface to view messages (plain text, HTML or source). Supports RFC2047 encoded headers. Real-time updates using EventSource. Release messages to real SMTP servers. Chaos Monkey for failure testing. HTTP API to list, retrieve and delete messages. See APIv1 and APIv2 documentation for more information. HTTP basic authentication for MailHog UI and API. Multipart MIME support. Download individual MIME parts. In-memory message storage. MongoDB and file based storage for message persistence. Lightweight and portable. No installation required.
    Downloads: 72 This Week
    Last Update:
    See Project
  • 3
    k6

    k6

    A modern load testing tool, using Go and JavaScript

    The best developer experience for load testing. Open source and SaaS for engineering teams. Test early and continuously—break the QA silo in performance testing. Backend and frontend engineers prevent regressions when running performance tests. Test scalability to improve your reliability targets. Test SLOs and avoid SLA breaches. Shift left and collaborate with developers for effective and continuous testing. Use the same script for local, distributed, and cloud tests. Migrate from local tests to the cloud using the same script for both environments. Verify that applications can handle the expected traffic. Adapt your testing: stress tests, peak tests, soak tests, etc. Mix browser and API testing—interact with real browsers and collect frontend metrics to get a holistic user view. Simulate real-world traffic in your chaos experiments. Inject system failures in your k6 tests.
    Downloads: 63 This Week
    Last Update:
    See Project
  • 4
    tracetest

    tracetest

    Build integration and end-to-end tests in minutes

    Tracetest is a trace-based testing tool for integration and end-to-end testing using OpenTelemetry traces. Verify end-to-end transactions and side effects across microservices & event-driven apps by using trace data as test specs. Cypress and Selenium are constrained by using the browser for testing. Tracetest bypasses this entirely by using your existing OpenTelemetry instrumentation and trace data to run tests and assertions against traces in every step of a request transaction.
    Downloads: 23 This Week
    Last Update:
    See Project
  • Earn up to 16% annual interest with Nexo. Icon
    Earn up to 16% annual interest with Nexo.

    Let your crypto work for you

    Put idle assets to work with competitive interest rates, borrow without selling, and trade with precision. All in one platform. Geographic restrictions, eligibility, and terms apply.
    Get started with Nexo.
  • 5
    Vegeta

    Vegeta

    HTTP load testing tool and library. It's over 9000!

    Vegeta is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate. It can be used both as a command line utility and a library. You can install Vegeta using the Homebrew package manager on Mac OS X. Both the library and the CLI are versioned with SemVer v2.0.0. After v8.0.0, the two components are versioned separately to better isolate breaking changes to each. CLI releases are tagged with cli/vMAJOR.MINOR.PATCH and published on the Github releases page. As for the library, new versions are tagged with both lib/vMAJOR.MINOR.PATCH and vMAJOR.MINOR.PATCH. The latter tag is required for compatibility with go mod. The JSON format makes integration with programs that produce targets dynamically easier. Each target is one JSON object in its own line. The method and url fields are required. If present, the body field must be base64 encoded. The generated JSON Schema defines the format in detail.
    Downloads: 14 This Week
    Last Update:
    See Project
  • 6
    GoReplay

    GoReplay

    The Swiss Army knife for testing and monitoring

    Increase confidence in code deployments, configuration changes and infrastructure changes with GoReplay! GoReplay is an innovative open source tool that captures and replays live HTTP traffic, using it to continuously test your system with real data. Now you don’t have to put up with risks that come with putting a third-party component in the critical path. With GoReplay you can analyze and record your application traffic without affecting it whatsoever. Use it for shadowing, load testing, monitoring and detailed analysis. You can trust GoReplay to accurately emulate production environments so you can make changes and deploy with confidence.
    Downloads: 11 This Week
    Last Update:
    See Project
  • 7
    Toxiproxy

    Toxiproxy

    A TCP proxy to simulate network and system conditions for chaos

    Toxiproxy is a framework for simulating network conditions. It's made specifically to work in testing, CI and development environments, supporting deterministic tampering with connections, but with support for randomized chaos and customization. Toxiproxy is the tool you need to prove with tests that your application doesn't have single points of failure. We've been successfully using it in all development and test environments at Shopify since October, 2014. See our blog post on resiliency for more information. Toxiproxy usage consists of two parts. A TCP proxy written in Go (what this repository contains) and a client communicating with the proxy over HTTP. You configure your application to make all test connections go through Toxiproxy and can then manipulate their health via HTTP. See Usage below on how to set up your project.
    Downloads: 8 This Week
    Last Update:
    See Project
  • 8
    govaluate

    govaluate

    Arbitrary expression evaluation for golang

    Sometimes, you can't know ahead-of-time what an expression will look like, or you want those expressions to be configurable. Perhaps you've got a set of data running through your application, and you want to allow your users to specify some validations to run on it before committing it to a database. Or maybe you've written a monitoring framework which is capable of gathering a bunch of metrics, then evaluating a few expressions to see if any metrics should be alerted upon, but the conditions for alerting are different for each monitor. A lot of people wind up writing their own half-baked style of evaluation language that fits their needs but isn't complete. Or they wind up baking the expression into the actual executable, even if they know it's subject to change. These strategies may work, but they take time to implement, time for users to learn, and induce technical debt as requirements change.
    Downloads: 8 This Week
    Last Update:
    See Project
  • 9
    Conftest

    Conftest

    Write tests against structured configuration data

    Conftest is a utility to help you write tests against structured configuration data. For instance, you could write tests for your Kubernetes configurations, Tekton pipeline definitions, Terraform code, Serverless configs, or any other structured data. Conftest relies on the Rego language from Open Policy Agent for writing policies. If you're unsure what exactly a policy is, or unfamiliar with the Rego policy language, the Policy Language documentation provided by the Open Policy Agent documentation site is a great resource to read.
    Downloads: 7 This Week
    Last Update:
    See Project
  • Build Securely on Azure with Proven Frameworks Icon
    Build Securely on Azure with Proven Frameworks

    Lay a foundation for success with Tested Reference Architectures developed by Fortinet’s experts. Learn more in this white paper.

    Moving to the cloud brings new challenges. How can you manage a larger attack surface while ensuring great network performance? Turn to Fortinet’s Tested Reference Architectures, blueprints for designing and securing cloud environments built by cybersecurity experts. Learn more and explore use cases in this white paper.
    Download Now
  • 10
    Learn Go with Tests

    Learn Go with Tests

    Learn Go with test-driven development

    Katas are fun but they are usually limited in their scope for learning a language; you're unlikely to use goroutines to solve a kata. Another problem is when you have varying levels of enthusiasm. Some people just learn way more of the language than others and when demonstrating what they have done end up confusing people with features the others are not familiar with. This ends up making the learning feel quite unstructured and ad hoc. By far the most effective way was by slowly introducing the fundamentals of the language by reading through go by example, exploring them with examples and discussing them as a group. This was a more interactive approach than "read chapter x for homework". Over time the team gained a solid foundation of the grammar of the language so we could then start to build systems. This is for people who are interested in picking up Go and/or people who already know some Go, but want to explore testing more.
    Downloads: 6 This Week
    Last Update:
    See Project
  • 11
    gock

    gock

    HTTP traffic mocking and testing made easy in Go

    Versatile HTTP mocking made easy in Go that works with any net/http based stdlib implementation. Heavily inspired by nock. There is also its Python port, pook. Simple, expressive, fluent API. Semantic API DSL for declarative HTTP mock declarations. Built-in helpers for easy JSON/XML mocking. Supports persistent and volatile TTL-limited mocks. Full regular expressions capable HTTP request mock matching. Designed for both testing and runtime scenarios. Match request by method, URL params, headers and bodies. Extensible and pluggable HTTP matching rules. Ability to switch between mock and real networking modes. Ability to filter/map HTTP requests for accurate mock matching. Supports map and filters to handle mocks easily. Wide compatible HTTP interceptor using http.RoundTripper interface. Works with any net/http compatible client, such as gentleman. Network timeout/cancelation delay simulation. Extensible and hackable API. Dependency free.
    Downloads: 5 This Week
    Last Update:
    See Project
  • 12
    Goss

    Goss

    Quick and Easy server testing/validation

    For testing docker containers see the dgoss wrapper. Also, user submitted wrapper scripts for Kubernetes kgoss and Docker Compose dcgoss. Goss is a YAML-based serverspec alternative tool for validating a server’s configuration. It eases the process of writing tests by allowing the user to generate tests from the current system state. Once the test suite is written they can be executed, waited-on, or served as a health endpoint. An initial set of tests can be derived from the system state by using the add or auto add commands. A Json draft 7 schema available in docs/goss-json-schema.yaml makes it easier to edit simple goss.yaml files in IDEs, providing usual coding assistance such as inline documentation, completion and static analysis.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 13
    httpexpect

    httpexpect

    End-to-end HTTP and REST API testing for Go

    Concise, declarative, and easy-to-use end-to-end HTTP and REST API testing for Go (golang). Basically, httpexpect is a set of chainable builders for HTTP requests and assertions for HTTP responses and payload, on top of net/http and several utility packages. URL path construction, with simple string interpolation provided by go-interpol package. URL query parameters (encoding using go-querystring package). Headers, cookies, payload: JSON, urlencoded or multipart forms (encoding using form package), plain text. Custom reusable request builders and request transformers. Type-specific assertions, supported types: object, array, string, number, boolean, null, datetime. Regular expressions. Simple JSON queries (using subset of JSONPath), provided by jsonpath package. JSON Schema validation, provided by gojsonschema package.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 14
    Ethr

    Ethr

    Ethr is a comprehensive network measurement tool for TCP, UDP & ICMP

    Ethr is a cross-platform network performance measurement tool written in golang. The goal of this project is to provide a native tool for comprehensive network performance measurements of bandwidth, connections/s, packets/s, latency, loss & jitter, across multiple protocols such as TCP, UDP, HTTP, HTTPS, and across multiple platforms such as Windows, Linux and other Unix systems. Ethr takes inspiration from existing open-source network performance tools and builds upon those ideas. For Bandwidth measurement, it is similar to iPerf3, for TCP & UDP traffic. iPerf3 has many more options for doing such as throttled testing, richer feature set, while Ethr has support for multiple threads, which allows it to scale to 1024 or even higher number of connections, multiple clients communication to a single server etc. For latency measurements, it is similar to latte on Windows or sockperf on Linux.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 15
    Fortio

    Fortio

    Fortio load testing library, command line tool, advanced echo server

    Fortio (Φορτίο) started as, and is, Istio’s load testing tool and later (2018) graduated to be its own open-source project. Fortio runs at a specified query per second (qps) and records an histogram of execution time and calculates percentiles (e.g. p99 ie the response time such as 99% of the requests take less than that number (in seconds, SI unit)). It can run for a set duration, for a fixed number of calls, or until interrupted (at a constant target QPS, or max speed/load per connection/thread). Fortio is a fast, small (4Mb docker image, minimal dependencies), reusable, embeddable go library as well as a command line tool and server process, the server includes a simple web UI and REST API to trigger run and see graphical representation of the results (both a single latency graph and a multiple results comparative min, max, avg, qps and percentiles graphs).
    Downloads: 2 This Week
    Last Update:
    See Project
  • 16
    Ginkgo

    Ginkgo

    BDD testing framework for Go

    Ginkgo is a Go testing framework built to help you efficiently write expressive and comprehensive tests using Behavior-Driven Development (“BDD”) style. It is best paired with the Gomega matcher library but is designed to be matcher-agnostic. These docs are written assuming you’ll be using Gomega with Ginkgo. They also assume you know your way around Go and have a good mental model for how Go organizes packages under $GOPATH. Ginkgo is tested against Go v1.6 and newer To install Go, follow the installation instructions. An empty test suite is not very interesting. While you can start to add tests directly into books_suite_test.go you’ll probably prefer to separate your tests into separate files (especially for packages with multiple files). Ginkgo builds on Go's testing package, allowing expressive Behavior-Driven Development ("BDD") style tests. It is typically (and optionally) paired with the Gomega matcher library.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 17

    Testify

    Thou Shalt Write Tests in Go

    Testify is a Go (golang) toolkit with common assertions and mocks for testing your code. It features a specific set of packages, namely: assert package, which allows for better, more readable test code in Go; require package, which is similar to the assert package but instead of returning a boolean result, terminates the current test; mock package, which allows for easy writing of mock objects; and the suit package, which provides functionality similar to those of more common object oriented languages. Testify is easy to install or update, and supports the three major Go versions (1.11, 1.12 and 1.13).
    Downloads: 2 This Week
    Last Update:
    See Project
  • 18
    gh-ost

    gh-ost

    GitHub's online schema migrations for MySQL

    gh-ost is a triggerless online schema migration solution for MySQL. It is testable and provides pausability, dynamic control/reconfiguration, auditing, and many operational perks. gh-ost produces a light workload on the master throughout the migration, decoupled from the existing workload on the migrated table. It has been designed based on years of experience with existing solutions, and changes the paradigm of table migrations. All existing online-schema-change tools operate in similar manner: they create a ghost table in the likeness of your original table, migrate that table while empty, slowly and incrementally copy data from your original table to the ghost table, meanwhile propagating ongoing changes (any INSERT, DELETE, UPDATE applied to your table) to the ghost table. Finally, at the right time, they replace your original table with the ghost table. gh-ost uses the same pattern. However it differs from all existing tools by not using triggers.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 19
    Beego

    Beego

    Open source framework to build & develop applications in the Go way

    Beego is an open source, high-performance web framework for building and developing applications in Go. Beego offers plenty of superb features, including RESTful support, MVC architecture, powerful built-in modules, intelligent routing and monitoring, plus Go-specific features like interfaces and struct embedding. Beego is very easy to use. Features like code hot compile, automated testing, as well as automated packing and deploying allow you to build your applications in a snap. Beego can be used for the rapid development of RESTful APIs, web apps and backend services that are written in Go.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 20
    Ddosify

    Ddosify

    High-performance load testing tool, written in Golang

    vLoad tests should be done regularly to avoid being caught unprepared. Find out the maximum service capacity of your web system. Start the test either instantly or for a future date. Define your periodic load tests. Without load tests, businesses understand the load capacity of their systems when they become inaccessible during campaign times such as Black Friday or Cyber Monday. Determine the origins of requests and the test duration with our easy-to-use web interfaces. Review past load tests and general performance from our reports and charts. Adjust the origin of the requests from 100+ locations. Existing solutions are costly and limited. So we’ve developed a brand-new load generator. Customize your tests with scenarios on UI. Without a line of code! Insightful reports and charts to improve your service capability.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 21
    dockerize

    dockerize

    Utility to simplify running applications in docker containers

    Utility to simplify running applications in docker containers. dockerize is a utility to simplify running applications in docker containers. It allows you to generate application configuration files at container startup time from templates and container environment variables. generate application configuration files at container startup time from templates and container environment variables. Wait for other services to be available using TCP, HTTP(S), unix before starting the main process. The typical use case for dockerize is when you have an application that has one or more configuration files and you would like to control some of the values using environment variables. Another use case is when the application logs to specific files on the filesystem and not stdout or stderr. This makes it difficult to troubleshoot the container using the docker logs command.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 22
    gofuzz

    gofuzz

    Fuzz testing for go

    gofuzz is a lightweight fuzzing utility for Go that rapidly generates randomized, edge-case-heavy inputs to populate structs, maps, slices, and scalar fields. It’s engineered to make property tests productive by automatically traversing nested types and supplying varied values, including zero values, extremes, and random strings or byte sequences. Because it respects Go’s type system, it can generate valid shapes for complex generic or composite types with very little setup. Users can register custom functions to influence how certain fields are constructed, which is useful for domains with strict invariants. The library’s determinism controls allow reproducible failures while still offering diverse coverage across runs. Teams reach for gofuzz to smoke out serialization bugs, panics in equality or hashing, and brittle assumptions in business logic.
    Downloads: 1 This Week
    Last Update:
    See Project
  • 23
    EZ Project

    EZ Project

    Softwares making our work easier

    Go to "Files" to download releases of EZComm and Jirrit. EZComm (EZ Comm) is still maintened, code hosted on https://github.com/bon-ami/ezcomm You can use it as either a client or a server for TCP/UDP text messages Jirrit is still maintened, code hosted on https://github.com/bon-ami/jirrit You can use it to operate with commands on JIRA, bugzilla, Jenkins and Gerrit. EZOutput is hosted on https://gitee.com/bon-ami/ezoutput
    Downloads: 8 This Week
    Last Update:
    See Project
  • 24
    Testing Files Generator

    Testing Files Generator

    Test file generator for QA. Creates real PDF, PNG, ZIP, DOCX and more

    Testing Files Generator is a tool for QA engineers and developers who need real files to test against - an upload form, a parser, anything that takes a file and has an opinion about it. You pick one of its 26 formats and the size you want, and you get exactly that: ask for a 10 MB PDF and you get a PDF that a reader will open, at 10 MB to the byte. GUI + CLI You are testing software that accepts files from people. Sooner or later you need: - a PDF of exactly 10 MB, to find out whether the upload limit is real - the three files that sit either side of that limit, to catch off by one errors -10,000 log files, to see what the nightly job does when the folder is big - a ZIP that genuinely holds 200 documents, not a stub with the right extension - a 4 GB file, without keeping a 4 GB file in your repository https://testingfilesgenerator.donislawdev.com/
    Downloads: 1 This Week
    Last Update:
    See Project
  • 25
    BigCache

    BigCache

    Efficient cache for gigabytes of data written in Go

    To meet the requirements presented at the beginning of this chapter, we implemented our own cache and named it BigCache. The BigCache provides shards, eviction and it omits GC for cache entries. As a result, it is very fast cache even for large number of entries. Freecache is the only one of the available in-memory caches in Go which provides that kind of functionality. BigCache is an alternative solution for it and reduces GC overhead differently, therefore we decided to share it. Fast, concurrent, evicting in-memory cache written to keep big number of entries without impact on performance. BigCache keeps entries on heap but omits GC for them. To achieve that, operations on byte slices take place, therefore entries (de)serialization in front of the cache will be needed in most use cases.
    Downloads: 0 This Week
    Last Update:
    See Project
  • Previous
  • You're on page 1
  • 2
  • Next