import { sleep, check, group } from "k6"; import http from "k6/http"; import { Trend } from 'k6/metrics'; import { randomIntBetween } from "https://jslib.k6.io/k6-utils/1.1.0/index.js"; import { base_url, product_sku, product_id, think_time_min, think_time_max } from '../../config.js'; import { htmlRequestHeader, jsonRequestHeader, commonRequestHeaders, commonGetRequestHeaders, commonPostRequestHeaders, commonNonStandardHeaders } from '../../headers.js'; /* add custom metrics for each step to the standard output */ let addToCartTrend = new Trend('wc_post_wc-ajax_add_to_cart'); let viewCartTrend = new Trend('wc_get_cart'); export function Cart() { let response; group("Product Page Add to cart", function () { var requestheaders = Object.assign(jsonRequestHeader, commonRequestHeaders, commonPostRequestHeaders, commonNonStandardHeaders) response = http.post( `${base_url}/?wc-ajax=add_to_cart`, { product_sku: `${product_sku}`, product_id: `${product_id}`, quantity: "1", }, { headers: requestheaders, } ); addToCartTrend.add(response.timings.duration); check(response, { 'is status 200': (r) => r.status === 200, }); }); sleep(randomIntBetween(`${think_time_min}`, `${think_time_max}`)); group("View Cart", function () { var requestheaders = Object.assign(htmlRequestHeader, commonRequestHeaders, commonGetRequestHeaders, commonNonStandardHeaders) response = http.get(`${base_url}/cart`, { headers: requestheaders, }); viewCartTrend.add(response.timings.duration); check(response, { 'is status 200': (r) => r.status === 200, "body does not contain 'your cart is currently empty'": response => !response.body.includes("Your cart is currently empty."), }); }); sleep(randomIntBetween(`${think_time_min}`, `${think_time_max}`)); } export default function () { Cart(); }