k6 имитирует вошедшего в систему пользователя wordpress

Я пытаюсь смоделировать активность пользователя, вошедшего в систему, для стресс-тестирования сайта WordPress, используя этот скрипт:

import http from "k6/http";
import { sleep } from "k6";

export default function() {
  var url = "http://example.com.com/wp-login.php";
  var payload = JSON.stringify({ user_login: "admin", user_pass: "adminpass" });
  var params =  { headers: { "Content-Type": "application/json" } }
  http.post(url, payload, params);

  console.log(payload);

  http.get("http://example.com/wp-admin/post-new.php")

  sleep(1)
};

Это не работает, и меня перенаправляют на страницу входа. Что я делаю не так?


person silverscales    schedule 26.07.2018    source источник


Ответы (1)


Я не очень хорошо знаком с внутренним устройством Wordpress, но, глядя на страницу wp-login.php нескольких случайных установок, не похоже, что она принимает строку JSON в качестве данных POST, а скорее простой запрос application/x-www-form-urlencoded POST: http.post("http://example.com.com/wp-login.php", { user_login: "admin", user_pass: "adminpass" }) (хотя поле имена были разные).

Чтобы быть уверенным, вы можете войти в систему с помощью браузера, а затем экспортировать файл HAR с сделанными HTTP-запросами и преобразовать его в сценарий k6 с помощью преобразователя HAR в k6, запустив k6 convert exported.har. Дополнительную информацию об этом можно найти здесь

person na--    schedule 27.07.2018