Add example ramping arrival rate scenario
This commit is contained in:
parent
9e7f1a277c
commit
a6a7fb1466
|
@ -0,0 +1,135 @@
|
||||||
|
import { homePage } from '../requests/shopper/home.js';
|
||||||
|
import { shopPage } from '../requests/shopper/shop-page.js';
|
||||||
|
import { searchProduct } from '../requests/shopper/search-product.js';
|
||||||
|
import { singleProduct } from '../requests/shopper/single-product.js';
|
||||||
|
import { cart } from '../requests/shopper/cart.js';
|
||||||
|
import { cartRemoveItem } from '../requests/shopper/cart-remove-item.js';
|
||||||
|
import { cartApplyCoupon } from '../requests/shopper/cart-apply-coupon.js';
|
||||||
|
import { checkoutGuest } from '../requests/shopper/checkout-guest.js';
|
||||||
|
import { checkoutCustomerLogin } from '../requests/shopper/checkout-customer-login.js';
|
||||||
|
import { myAccount } from '../requests/shopper/my-account.js';
|
||||||
|
import { wpLogin } from '../requests/merchant/wp-login.js';
|
||||||
|
import { products } from '../requests/merchant/products.js';
|
||||||
|
import { addProduct } from '../requests/merchant/add-product.js';
|
||||||
|
import { orders } from '../requests/merchant/orders.js';
|
||||||
|
import { ordersHeartbeat } from '../requests/merchant/orders-heartbeat.js';
|
||||||
|
import { homeWCAdmin } from '../requests/merchant/home-wc-admin.js';
|
||||||
|
import { myAccountMerchantLogin } from '../requests/merchant/my-account-merchant.js';
|
||||||
|
|
||||||
|
export let options = {
|
||||||
|
scenarios: {
|
||||||
|
merchantBackgroundActivity: {
|
||||||
|
executor: 'ramping-arrival-rate',
|
||||||
|
startRate: 1, // starting iterations per timeUnit
|
||||||
|
timeUnit: '1s',
|
||||||
|
preAllocatedVUs: 5,
|
||||||
|
maxVUs: 10,
|
||||||
|
stages: [ // target value is iterations per timeUnit
|
||||||
|
{ target: 1, duration: '5s' },
|
||||||
|
{ target: 2, duration: '600s' },
|
||||||
|
{ target: 2, duration: '120s' },
|
||||||
|
{ target: 4, duration: '600s' },
|
||||||
|
{ target: 4, duration: '120s' },
|
||||||
|
{ target: 0, duration: '120s' },
|
||||||
|
],
|
||||||
|
exec: 'merchantAllFlows',
|
||||||
|
},
|
||||||
|
merchantIdleBackgroundActivity: {
|
||||||
|
executor: 'ramping-arrival-rate',
|
||||||
|
startRate: 1, // starting iterations per timeUnit
|
||||||
|
timeUnit: '1s',
|
||||||
|
preAllocatedVUs: 5,
|
||||||
|
maxVUs: 10,
|
||||||
|
stages: [ // target value is iterations per timeUnit
|
||||||
|
{ target: 1, duration: '5s' },
|
||||||
|
{ target: 2, duration: '600s' },
|
||||||
|
{ target: 2, duration: '120s' },
|
||||||
|
{ target: 4, duration: '600s' },
|
||||||
|
{ target: 4, duration: '120s' },
|
||||||
|
{ target: 0, duration: '120s' },
|
||||||
|
],
|
||||||
|
exec: 'merchantHeartbeatFlow',
|
||||||
|
},
|
||||||
|
shopperBackgroundActivity: {
|
||||||
|
executor: 'ramping-arrival-rate',
|
||||||
|
startRate: 1, // starting iterations per timeUnit
|
||||||
|
timeUnit: '1s',
|
||||||
|
preAllocatedVUs: 5,
|
||||||
|
maxVUs: 10,
|
||||||
|
stages: [ // target value is iterations per timeUnit
|
||||||
|
{ target: 1, duration: '5s' },
|
||||||
|
{ target: 2, duration: '600s' },
|
||||||
|
{ target: 2, duration: '120s' },
|
||||||
|
{ target: 4, duration: '600s' },
|
||||||
|
{ target: 4, duration: '120s' },
|
||||||
|
{ target: 0, duration: '120s' },
|
||||||
|
],
|
||||||
|
exec: 'shopperBrowsingFlows',
|
||||||
|
},
|
||||||
|
shopperGuestCheckouts: {
|
||||||
|
executor: 'ramping-arrival-rate',
|
||||||
|
startRate: 1, // starting iterations per timeUnit
|
||||||
|
timeUnit: '1s',
|
||||||
|
preAllocatedVUs: 10,
|
||||||
|
maxVUs: 20,
|
||||||
|
stages: [ // target value is iterations per timeUnit
|
||||||
|
{ target: 1, duration: '5s' },
|
||||||
|
{ target: 4, duration: '600s' },
|
||||||
|
{ target: 4, duration: '120s' },
|
||||||
|
{ target: 8, duration: '600s' },
|
||||||
|
{ target: 8, duration: '120s' },
|
||||||
|
{ target: 0, duration: '120s' },
|
||||||
|
],
|
||||||
|
exec: 'checkoutGuestFlow',
|
||||||
|
},
|
||||||
|
shopperCustomerCheckouts: {
|
||||||
|
executor: 'ramping-arrival-rate',
|
||||||
|
startRate: 1, // starting iterations per timeUnit
|
||||||
|
timeUnit: '1s',
|
||||||
|
preAllocatedVUs: 5,
|
||||||
|
maxVUs: 10,
|
||||||
|
stages: [ // target value is iterations per timeUnit
|
||||||
|
{ target: 1, duration: '5s' },
|
||||||
|
{ target: 2, duration: '600s' },
|
||||||
|
{ target: 2, duration: '120s' },
|
||||||
|
{ target: 4, duration: '600s' },
|
||||||
|
{ target: 4, duration: '120s' },
|
||||||
|
{ target: 0, duration: '120s' },
|
||||||
|
],
|
||||||
|
exec: 'checkoutCustomerLoginFlow',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// Use myAccountMerchantLogin() instead of wpLogin() if having issues with login.
|
||||||
|
export function merchantAllFlows() {
|
||||||
|
myAccountMerchantLogin();
|
||||||
|
homeWCAdmin();
|
||||||
|
orders();
|
||||||
|
products();
|
||||||
|
addProduct();
|
||||||
|
}
|
||||||
|
// Use myAccountMerchantLogin() instead of wpLogin() if having issues with login.
|
||||||
|
export function merchantHeartbeatFlow() {
|
||||||
|
// Login only on first iteration
|
||||||
|
if (__ITER == 0) {
|
||||||
|
myAccountMerchantLogin();}
|
||||||
|
ordersHeartbeat();
|
||||||
|
}
|
||||||
|
export function shopperBrowsingFlows() {
|
||||||
|
homePage();
|
||||||
|
shopPage();
|
||||||
|
searchProduct();
|
||||||
|
singleProduct();
|
||||||
|
cartRemoveItem();
|
||||||
|
cartApplyCoupon();
|
||||||
|
myAccount();
|
||||||
|
}
|
||||||
|
export function checkoutGuestFlow() {
|
||||||
|
cart();
|
||||||
|
checkoutGuest();
|
||||||
|
}
|
||||||
|
export function checkoutCustomerLoginFlow() {
|
||||||
|
cart();
|
||||||
|
checkoutCustomerLogin();
|
||||||
|
}
|
Loading…
Reference in New Issue