[Sitecore][Testing]K6でログイン
検証環境:Sitecore 9.2.0
概要:
K6でサイトコアのサイトをテストする際に、フォームを使用しているページログインのログインのスクリプトです。
背景:
サイトのアートメーションテストを行う際に、K6でフォームを使用しているページログインするスクリプトが必要と言われ、
これはそれを作ったメモ書きです。
手順:
1.フォームの名前を確認。ペールを右クリックして、ページソースを表示させます。
2.フォーム名を検索します、書き留めます。
3.K6のドキュメンテーションを基づいてスクリプトを作成しますスを表示させます。 https://k6.io/docs/examples/html-forms/
URLを変更し、
しかし、実行したところフォームが存在したいというでエラーが発生:
GoError: no form found for selector ‘form’ in response
4.ログインインフォをポストします。
ネットでレファレンスを見れが、直接ログインインフォをポストするのを見つかり、それを使用して、ロインできました。
import http from ‘k6/http’;
import {check, group, sleep, fail} from ‘k6’;
export let options = {
maxRedirects: 0,
stages: [
{ duration: “5s”, target: 1},
]
};
function startScript(){
let res=”;
return loginres;
}
const USERNAME = ‘your user name’;
const PASSWORD = ‘your password’;
const BASE_URL = ‘https://your.web.com/sign-in‘;
export function setup() {
let request = http.post(`${BASE_URL}`, {
username: USERNAME,
password: PASSWORD
});
let authToken = request.json(‘access’);
check(authToken, { ‘successfully logged in!’: () => authToken !== ”, });
return authToken;
}
export default (authToken) => {
const requestConfigWithTag = tag => ({
headers: {
Authorization: `Bearer ${authToken}`
},
tags: Object.assign({}, {
name: ‘PrivateCrocs’
}, tag)
});
group(‘homepage’, () => {
let responses = http.batch([
[‘GET’, `https://your.web.com/home`, null, {tags: {ctype: ‘html’ } }],
]);
check(responses[0], {
‘price for logged in user’: (r) => r.html().find(‘span’).toArray().forEach(function (item) {console.log(item.attr(‘data-price’))}),
});
})