342 Resources
Golang testing Libraries
Testcontainers is a Golang library that providing a friendly API to run Docker container. It is designed to create runtime environment to use during your automatic tests.
When I was working on a Zipkin PR I discovered a nice Java library called Testcontainers. It provides an easy and clean API over the go docker sdk to
Smocker is a simple and efficient HTTP mock server and proxy.
Smocker (server mock) is a simple and efficient HTTP mock server. The documentation is available on smocker.dev. Table of contents Installation With D
A clipboard-based mocking framework for Go that gets out of your way.
A clipboard-based mocking framework for Go that gets out of your way. This tool has been built with inspiration lovingly taken from Moq, and fuelled b
An HTTP/HTTPS intercept proxy written in Go.
Broxy Broxy is an open source intercept proxy written in Go. It makes use of goproxy as core proxy implementation and the interface is implemented wit
An HTTP performance testing tool written in GoLang
Gonce A HTTP API performance testing tool written in GoLang Description Installation Usage Description A performance testing tool written in GoLang. S
k6 is a modern load testing tool for developers and testers in the DevOps era.
k6 is a modern load testing tool, building on our years of experience in the load and performance testing industry. It provides a clean, approachable scripting API, local and cloud execution, and flexible configuration.
Continuous Benchmark for Go Project
Abstract cob compares benchmarks between the latest commit (HEAD) and the previous commit (HEAD{@1}). The program will fail if the change in score is
Information Gathering tool - DNS / Subdomains / Ports / Directories enumeration
Information Gathering tool - DNS / Subdomains / Ports / Directories enumeration
A bytecode-based virtual machine to implement scripting/filtering support in your golang project.
eval-filter Implementation Scripting Facilities Types Built-In Functions Conditionals Loops Functions Case/Switch Use Cases Security Denial of service
A faster, simpler way to drive browsers supporting the Chrome DevTools Protocol.
About chromedp Package chromedp is a faster, simpler way to drive browsers supporting the Chrome DevTools Protocol in Go without external dependencies
Microservice Test Framework
This Microservice Test Framework (MTF) allows in simple way to mock service dependencies and setup docker test environment comprehensive.
Extremely flexible golang deep comparison, extends the go testing package, tests HTTP APIs and provides tests suite
go-testdeep Extremely flexible golang deep comparison, extends the go testing package. Latest news Synopsis Description Installation Functions Availab
The AWS Enumerator was created for service enumeration and info dumping for investigations of penetration testers during Black-Box testing. The tool is intended to speed up the process of Cloud review in case the security researcher compromised AWS Account Credentials.
AWS Service Enumeration Disclaimer The tool is in beta stage (testing in progress), no destructive API Calls used ( read only actions ). I hope, there
A web-based testing platform for WAF (Web Application Firewall)'s correctness
WAFLab 🐾 WAFLab is a web-based platform for testing WAFs. Live Demo https://waflab.org/ Architecture WAFLab contains 2 parts: Name Description Langua
Go library for parsing and submitting HTML forms
gosubmit Description Docs are available here: https://godoc.org/github.com/jeremija/gosubmit Helps filling out plain html forms during testing. Will a
Currently in beta testing. A chess engine written in golang
Weasel Art graciously provided by Alex Table of Contents: About Installing and Compiling from Source Contributing License About Weasel is an 0x88 and
'go test' runner with output optimized for humans, JUnit XML for CI integration, and a summary of the test results.
gotestsum gotestsum runs tests using go test --json, prints formatted test output, and a summary of the test run. It is designed to work well for both
暴走皮皮虾之代码发布系统,是现代的持续集成发布系统,由后台管理系统和agent两部分组成,一个运行着的agent就是一个节点,本系统并不是造轮子,是"鸟枪"到"大炮"的创新,对"前朝遗老"的革命.
暴走皮皮虾之代码发布系统,是现代的持续集成发布系统,由后台管理系统和agent两部分组成,一个运行着的agent就是一个节点,本系统并不是造轮子,是"鸟枪"到"大炮"的创新,对"前朝遗老"的革命. 特点 基于golang编写,站在巨人肩膀上,充分利用golang的协程,channel还有高并发的特点
Gorsair hacks its way into remote docker containers that expose their APIs
Gorsair Gorsair is a penetration testing tool for discovering and remotely accessing Docker APIs from vulnerable Docker containers. Once it has access
Idiomatic nmap library for go developers
nmap This library aims at providing idiomatic nmap bindings for go developers, in order to make it easier to write security audit tools using golang.
kunpeng是一个Golang编写的开源POC框架/库,以动态链接库的形式提供各种语言调用,通过此项目可快速开发漏洞检测类的系统。
Kunpeng 简介 Kunpeng是一个Golang编写的开源POC检测框架,集成了包括数据库、中间件、web组件、cms等等的漏洞POC(查看已收录POC列表),可检测弱口令、SQL注入、XSS、RCE等漏洞类型,以动态链接库的形式提供调用,通过此项目可快速开发漏洞检测类的系统,比攻击者快一步发
Coverage testing tool for The Go Programming Language
gocov Coverage reporting tool for The Go Programming Language Installation go get github.com/axw/gocov/gocov Usage There are currently four gocov comm
A WebDriver client and acceptance testing library for Go
Agouti Agouti is a library for writing browser-based acceptance tests in Google Go. It provides Gomega matchers and plays nicely with Ginkgo or Spec.
Professional lightweight testing mini-framework for Go.
is Professional lightweight testing mini-framework for Go. Easy to write and read Beautifully simple API with everything you need: is.Equal, is.True,
Markdown based document-driven RESTful API testing.
silk Markdown based document-driven web API testing. Write nice looking Markdown documentation (like this), and then run it using the silk command Sim
A presentable test report generator for go packages
go-tprof Overview Prerequisites 1. Go version = 1.12 2. Node.js version = 8.0.0 (for building the UI) 3. Yarn 4. GOPATH and local bin setup (`expor
Go (Golang) Fake Data Generator for Struct
Docs faker Struct Data Fake Generator Faker will generate you a fake data based on your Struct. Index Support Getting Started Example Limitation Contr
Automatically generate Go test boilerplate from your source code.
gotests gotests makes writing Go tests easy. It's a Golang commandline tool that generates table driven tests based on its target source files' functi
Rich testing for the Go language
Instructions Install the package with: go get gopkg.in/check.v1 Import it with: import "gopkg.in/check.v1" and use check as the package name inside
Framework of performance testing
Framework of performance testing fperf is a powerful and flexible framework which allows you to develop your own benchmark tools so much easy. You cre
BDD Testing Framework for Go
Jump to the docs | 中文文档 to learn more. To start rolling your Ginkgo tests now keep reading! If you have a question, comment, bug report, feature reque
Patch all Go functions for testing
SuperMonkey This lib is inspired by https://github.com/bouk/monkey, and uses some of the code Introduction Patch all functions without limits, includi
Go testing in the browser. Integrates with `go test`. Write behavioral tests in Go.
GoConvey is awesome Go testing Welcome to GoConvey, a yummy Go testing tool for gophers. Works with go test. Use it in the terminal or browser accordi
Litter is a pretty printer library for Go data structures to aid in debugging and testing.
Litter Litter is a pretty printer library for Go data structures to aid in debugging and testing. Litter is provided by Sanity: The Headless CMS Const
A Golang tool that does static analysis, unit testing, code review and generate code quality report.
goreporter A Golang tool that does static analysis, unit testing, code review and generate code quality report. This is a tool that concurrently runs
go-wrk - a HTTP benchmarking tool based in spirit on the excellent wrk tool (https://github.com/wg/wrk)
go-wrk - an HTTP benchmarking tool go-wrk is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi-core CP
Fast cross-platform HTTP benchmarking tool written in Go
bombardier bombardier is a HTTP(S) benchmarking tool. It is written in Go programming language and uses excellent fasthttp instead of Go's default htt
HTTP load testing tool and library. It's over 9000!
Vegeta 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
A Master list of Go Programming Tutorials, their write-ups, their source code and their current build status!
TutorialEdge TutorialEdge.net Go Tutorials 👩💻 👨💻 Welcome to the TutorialEdge Go Repository! The goal of this repo is to be able to keep track of
Cucumber for golang
Godog The API is likely to change a few times before we reach 1.0.0 Please read the full README, you may find it very useful. And do not forget to pee
Generate HTTP load and plot the results in real-time
ali A load testing tool capable of performing real-time analysis, inspired by vegeta and jplot. ali comes with an embedded terminal-based UI where you
Litmus helps Kubernetes SREs and developers practice chaos engineering in a Kubernetes native way.
Litmus Cloud-Native Chaos Engineering Read this in other languages. 🇰🇷 🇨🇳 🇧🇷 🇮🇳 Overview Litmus is a toolset to do cloud-native chaos engineer
Subfinder is a subdomain discovery tool that discovers valid subdomains for websites. Designed as a passive framework to be useful for bug bounties and safe for penetration testing.
Fast passive subdomain enumeration tool. Features • Install • Usage • API Setup • License • Join Discord Subfinder is a subdomain discovery tool that
Sharingan(写轮眼)是一个基于golang的流量录制回放工具,适合项目重构、回归测试等。
Sharingan Sharingan,中文名:写轮眼,是漫画《火影忍者》中的一种瞳术,具有复制、幻术等能力,在幻术世界里,一切因素包括时间,地点,质量等,都由施术者掌控。 一、简介 Sharingan是一个基于golang的流量录制回放工具,录制线上真实请求流量进行回放测试,适合项目重构、回归测试
GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.
https://goreplay.org/ GoReplay is an open-source network monitoring tool which can record your live traffic, and use it for shadowing, load testing, m
An always-on framework that performs end-to-end functional network testing for reachability, latency, and packet loss
Arachne Arachne is a packet loss detection system and an underperforming path detection system. It provides fast and easy active end-to-end functional
bigo time complexity
Big-O Run & Plot Library that helps to run Big-O Experiments and plot the output Example comparing two variants examples/ex1/main.go package main imp
Stress testing and benchmarking tool for the NEAR EVM
evm-bully --- stress testing and benchmarking tool for the NEAR EVM
🚀🌏 Orbital is a simple end-to-end testing framework for Go
Orbital is a test framework which enables a developer to write end to end tests just like one would writing unit tests. We do this by effectively copying the testing.T API and registering tests to be run periodically on a configured schedule.
Quick and Easy server testing/validation
Goss - Quick and Easy server validation Goss in 45 seconds Note: For an even faster way of doing this, see: autoadd Note: For testing docker container
Declarative penetration testing orchestration framework
Decker - Penetration Testing Orchestration Framework Purpose Decker is a penetration testing orchestration framework. It leverages HashiCorp Configura
Gorsair hacks its way into remote docker containers that expose their APIs
Gorsair Gorsair is a penetration testing tool for discovering and remotely accessing Docker APIs from vulnerable Docker containers. Once it has access
Learn Go with test-driven development
Learn Go with Tests Art by Denise Formats Gitbook EPUB or PDF Translations 中文 Português 日本語 한국어 Support me I am proud to offer this resource for free,
Sharingan(写轮眼)是一个基于golang的流量录制回放工具,适合项目重构、回归测试等。
Sharingan Sharingan,中文名:写轮眼,是漫画《火影忍者》中的一种瞳术,具有复制、幻术等能力,在幻术世界里,一切因素包括时间,地点,质量等,都由施术者掌控。 一、简介 Sharingan是一个基于golang的流量录制回放工具,录制线上真实请求流量进行回放测试,适合项目重构、回归测试
Progressive delivery Kubernetes operator (Canary, A/B Testing and Blue/Green deployments)
flagger Flagger is a progressive delivery tool that automates the release process for applications running on Kubernetes. It reduces the risk of intro
mockery - A mock code autogenerator for Golang
mockery - A mock code autogenerator for Golang
Terratest is a Go library that makes it easier to write automated tests for your infrastructure code.
Terratest is a Go library that makes it easier to write automated tests for your infrastructure code. It provides a variety of helper functions and patterns for common infrastructure testing tasks,
Cloud-Native A/B Testing Platform (WIP) 云原生的 A/B 测试平台
云原生的 A/B 测试系统 介绍 A/B 测试起源于农业工程。人们将土地划分为不同的地块,通过种植不同的农作物来确定在这些土地上更适合种植何种作物。随后 A/B 测试被广泛地应用于医学、工业等不同领域。
A next-generation testing tool. Orion provides a powerful DSL to write and automate your acceptance tests
Orion is born to change the way we implement our acceptance tests. It takes advantage of HCL from Hashicorp t o provide a simple DSL to write the acceptance tests.
A tool to check problems about meta files of Unity
A tool to check problems about meta files of Unity on Git repositories, and also the tool can do limited autofix for meta files of auto-generated files.
Listing git repository from URL/User/Org
This tool is available when the repository, such as github, is included in the bugbounty scope. Sometimes specified as an org name or user name rather than a specific repository, you can use this tool to extract url from all public repositories included in the org/user.
GoReplay is an open-source tool for capturing and replaying live HTTP traffic into a test environment in order to continuously test your system with real data. It can be used to increase confidence in code deployments, configuration changes and infrastructure changes.
https://goreplay.org/ GoReplay is an open-source network monitoring tool which can record your live traffic, and use it for shadowing, load testing, m
Golang gRPC Middlewares: interceptor chaining, auth, logging, retries and more.
Golang gRPC Middlewares: interceptor chaining, auth, logging, retries and more.
A mock code autogenerator for Golang
mockery provides the ability to easily generate mocks for golang interfaces using the stretchr/testify/mock package. It removes the boilerplate coding required to use mocks.
Automatically update your Go tests
autogold - automatically update your Go tests autogold makes go test -update automatically update your Go tests (golden files and Go values in e.g. fo
An operator for managing ephemeral clusters in GKE
Test Cluster Operator for GKE This operator provides an API-driven cluster provisioning for integration and performance testing of software that integ
Replacement of ApacheBench(ab), support for transactional requests, support for command line and package references to HTTP stress testing tool.
stress stress is an HTTP stress testing tool. Through this tool, you can do a stress test on the HTTP service and get detailed test results. It is ins
The interactive web server
The interactive web server. HTTPLabs let you inspect HTTP requests and forge responses. Install Golang go get github.com/gchaincl/httplab go install g
HTTP/HTTPS load testing and benchmarking tool
Introduction I wrote that code because: (the obvious reason::I love to write code in Go) We are working so hard to optimize our servers - why shouldn'
HTTP Load Testing And Benchmarking Tool
GBench HTTP Load Testing And Benchmarking Tool inspired by Apache Benchmark and Siege. Requirements You need Golang installed and ready on your system
Go Library [DEPRECATED]
Tideland Go Library Description The Tideland Go Library contains a larger set of useful Google Go packages for different purposes. ATTENTION: The cell
Go Library [DEPRECATED]
Tideland Go Library Description The Tideland Go Library contains a larger set of useful Google Go packages for different purposes. ATTENTION: The cell
A bytecode-based virtual machine to implement scripting/filtering support in your golang project.
eval-filter Implementation Scripting Facilities Types Built-In Functions Conditionals Loops Functions Case/Switch Use Cases Security Denial of service
HTTP load testing tool and library. It's over 9000!
Vegeta 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
Flexible HTTP command line stress tester for websites and web services
Pewpew Pewpew is a flexible command line HTTP stress tester. Unlike other stress testers, it can hit multiple targets with multiple configurations, si
Build powerful pipelines in any programming language.
Gaia is an open source automation platform which makes it easy and fun to build powerful pipelines in any programming language. Based on HashiCorp's g
:rocket: Modern cross-platform HTTP load-testing tool written in Go
English | 中文 Cassowary is a modern HTTP/S, intuitive & cross-platform load testing tool built in Go for developers, testers and sysadmins. Cassowary d
Fast cross-platform HTTP benchmarking tool written in Go
bombardier bombardier is a HTTP(S) benchmarking tool. It is written in Go programming language and uses excellent fasthttp instead of Go's default htt
Blast is a simple tool for API load testing and batch jobs
Blast Blast makes API requests at a fixed rate. The number of concurrent workers is configurable. The rate may be changed interactively during executi
Unit tests generator for Go programming language
GoUnit GoUnit is a commandline tool that generates tests stubs based on source function or method signature. There are plugins for Vim Emacs Atom Subl
Automatically generate Go test boilerplate from your source code.
gotests gotests makes writing Go tests easy. It's a Golang commandline tool that generates table driven tests based on its target source files' functi
James is your butler and helps you to create, build, debug, test and run your Go projects
go-james James is your butler and helps you to create, build, debug, test and run your Go projects. When you often create new apps using Go, it quickl
Vim plugin for https://github.com/hexdigest/gounit
gounit-vim Vim plugin for gounit tool that allows you to generate Go tests easily. Demo Installation gounit-vim requires gounit to be available in you
MOVED TO GITLAB
blanket blanket is a tool that helps you catch functions which don't have direct unit tests in your Go packages. Installation go get -u gitlab.com/ver
Run WASM tests inside your browser
wasmbrowsertest Run Go wasm tests easily in your browser. If you have a codebase targeting the wasm platform, chances are you would want to test your
A norms and conventions validator for Terraform
This tool will help you ensure that a terraform folder answer to your norms and conventions rules. This can be really useful in several cases : You're
A faster, simpler way to drive browsers supporting the Chrome DevTools Protocol.
About chromedp Package chromedp is a faster, simpler way to drive browsers supporting the Chrome DevTools Protocol in Go without external dependencies
Fuzz testing for go.
gofuzz gofuzz is a library for populating go objects with random values. This is useful for testing: Do your project's objects really serialize/unseri
Randomized testing for Go
go-fuzz: randomized testing for Go Go-fuzz is a coverage-guided fuzzing solution for testing of Go packages. Fuzzing is mainly applicable to packages
A test-friendly replacement for golang's time package
timex timex is a test-friendly replacement for the time package. Usage Just replace your time.Now() by a timex.Now() call, etc. Mocking Use timex.Over
Lightweight service virtualization/API simulation tool for developers and testers
API simulations for development and testing Hoverfly is a lightweight, open source API simulation tool. Using Hoverfly, you can create realistic simul
HTTP mock for Golang: record and replay HTTP/HTTPS interactions for offline testing
govcr A Word Of Warning I'm in the process of partly rewriting govcr to offer better support for cassette mutations. This is necessary because when I
HTTP traffic mocking and testing made easy in Go ༼ʘ̚ل͜ʘ̚༽
gock Versatile HTTP mocking made easy in Go that works with any net/http based stdlib implementation. Heavily inspired by nock. There is also its Pyth
Immutable transaction isolated sql driver for golang
Single transaction based sql.Driver for GO Package txdb is a single transaction based database sql driver. When the connection is opened, it starts a
Sql mock driver for golang to test database interactions
Sql driver mock for Golang sqlmock is a mock library implementing sql/driver. Which has one and only purpose - to simulate any sql driver behavior in
go websocket client for unit testing of a websocket handler
wstest A websocket client for unit-testing a websocket server The gorilla organization provides full featured websocket implementation that the standa
A toolkit with common assertions and mocks that plays nicely with the standard library
Testify - Thou Shalt Write Tests ℹ️ We are working on testify v2 and would love to hear what you'd like to see in it, have your say here: https://cutt
Ruby on Rails like test fixtures for Go. Write tests against a real database
testfixtures Warning: this package will wipe the database data before loading the fixtures! It is supposed to be used on a test database. Please, doub
testcase is an opinionated behavior-driven-testing library
Table of Contents testcase Guide Official API Documentation Getting Started / Example Modules Summary DRY Modularization Stability Case Study About te
Quick and easy expression matching for JSON schemas used in requests and responses
schema schema makes it easier to check if map/array structures match a certain schema. Great for testing JSON API's or validating the format of incomi