2

我正在尝试使用此脚本模拟登录用户活动以对 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)
};

这不起作用,我被重定向到登录页面。我究竟做错了什么?

4

1 回答 1

1

我对 Wordpress 内部不是很熟悉,但是查看一些随机安装的wp-login.php页面,它看起来不像接受 JSON 字符串作为 POST 数据,而是接受普通的application/x-www-form-urlencodedPOST 请求:(http.post("http://example.com.com/wp-login.php", { user_login: "admin", user_pass: "adminpass" })尽管字段名称不同)。

可以肯定的是,您可以使用浏览器登录,然后使用它发出的 HTTP 请求导出 HAR 文件,然后使用 k6 中的 HAR 转换器通过运行将其转换为 k6 脚本k6 convert exported.har。您可以在此处找到有关此的更多信息

于 2018-07-27T07:50:10.683 回答