我已经开始使用'Artillery.io‘进行负载测试了。下面是如何在load-test.yml中传递像email, password这样的认证参数,下面的代码在发送请求时抛出了一个未经授权的错误。有没有人可以指导我如何传递像email and password这样的认证参数
config:
target: 'https://test-url.com'
phases:
- duration: 70
arrivalRate: 10
defaults:
headers:
Content-Type: application/json
scenarios:
- flow:
- get:
url: /findAMembership
headers:
Content-Type: application/json
- post:
url: /auth
body: '{"username":"test@test.com", "password": "some_testpassword"}'
headers:
Content-Type: application/json发布于 2019-10-25 13:00:22
你的脚本会做一些事情,让它更容易阅读,更容易排除故障,也许还能解决你的问题。
首先,关于401问题,我认为您的请求不满足身份验证端点要求。请检查终结点。(比如如何以正常的方式执行auth?)
我假设端点接受一个json请求(username和password)并响应一个Bearer token,您可以尝试这样做(使用json代替body,并定义key-value):
- post:
url: "/auth"
json:
username: "test@test.com"
password: "some_testpassword"
headers:
Content-Type: "application/json" # no need this, you have specified the default Content-Type
capture:
json: "$.token"
as: "token" # Should have this, read below注意,您发送了一个auth请求,但没有捕获其中的任何内容,这没有任何意义。记住捕获响应(如Bearer token等)用于需要身份验证的链接请求。Read more
发布于 2020-06-26 18:11:45
如果你想从文件中读取用户,你可以指定一个有效负载路径,以及它的字段。这还允许您测试具有多个用户和/或失败尝试的场景。
config:
target: "<TARGET>"
payload:
- path: "./users.csv"
fields:
- "username"
- "password"
order: sequence
skipHeader: true
- path: "./products.csv"
fields:
- "id"
order: sequence
skipHeader: true
phases:
- duration: 60
arrivalRate: 20
scenarios:
- flow:
- post:
url: "/login"
json:
username: "{{ username }}"
password: "{{ password }}"这样,将从指定的CSV文件中读取用户名和密码,并使用json主体对象将其POSTed到<TARGET>/login端点
{
username: <READ USERNAME>
password: <READ PASSWORD>
}示例CSV- file可能如下所示
username,password
some1@example.com,super1
email@example.com,secrethttps://stackoverflow.com/questions/58513705
复制相似问题