Menu
DocumentationGrafana k6Testing guidesInjecting faults with xk6-disruptorxk6-disruptor APIPodDisruptor
Open source
PodDisruptor
The PodDisruptor
class can inject different types of faults into the pods that match a selection criteria.
To construct a PodDisruptor
, use the PodDisruptor() constructor.
Methods
Method | Description |
---|---|
PodDisruptor.injectGrpcFaults() | Inject gRPC faults in the target Pods |
PodDisruptor.injectHTTPFaults() | Inject HTTP faults in the target Pods |
PodDisruptor.targets() | Returns the list of target Pods of the PodDisruptor |
PodDisruptor.terminatePods() | executes a Pod Termination fault in the target Pods |
Example
This example:
- Creates a selector that matches all pods in the
default
namespace with therun=nginx
label - Injects a delay of 100ms and makes 10 percent of requests return an http response code
500
.
JavaScript
import { PodDisruptor } from 'k6/x/disruptor';
const selector = {
namespace: 'default',
select: {
labels: {
run: 'nginx',
},
},
};
const fault = {
averageDelay: '100ms',
errorRate: 0.1,
errorCode: 500,
};
export default function () {
const disruptor = new PodDisruptor(selector);
disruptor.injectHTTPFaults(fault, '30s');
}
Note
You can test this script by first creating a pod running nginx with the command below, assuming you have kubectl installed in your environment:
bash$ kubectl run nginx --image=nginx
You can also use the xk6-kubernetes extension for creating these resources from your test script.
Was this page helpful?
Related documentation
Related resources from Grafana Labs
Additional helpful documentation, links, and articles:
Video
Performance testing and observability in Grafana Cloud
In this webinar, learn how Grafana Cloud k6 offers you the best developer experience for performance testing.
User-centered observability: load testing, real user monitoring, and synthetics
Learn how to use load testing, synthetic monitoring, and real user monitoring (RUM) to understand end users' experience of your apps. Watch on demand.