woocommerce/tests/performance/requests/shopper/cart.js

71 lines
1.9 KiB
JavaScript
Raw Normal View History

2021-07-01 11:11:26 +00:00
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();
}