[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’))}),
        });
    })