我知道使用变量可以将用户名和密码传递给API调用,但这会附加到测试中的请求中:
而不是例如。 https://api-server.com/test/somekey${USERNAME}${PWD}
我想发送:
https://${USERNAME}:${PWD}@api-server.com/test/somekey
当我尝试这个时,如果我在用户名和密码变量之间放置冒号,它会抛出错误null
;有没有办法通过':'进入HTTP请求或替代解决方案?
注意:测试的目的是通过CSV配置输入带有多个用户名的CSV,用于检查访问权限的密码等。我目前使用单个HTTP授权管理器为单个用户测试多个API调用。或者,我希望在套件中为许多其他用户运行一些API测试,那么我怎么能实现这个目标呢?
答案 0 :(得分:1)
只需使用HTTP Authorization Manager(确保选择BASIC_DIGEST机制)作为要传递凭据的请求的子代 - 在这种情况下,它只会影响一个请求。
如果您需要为多个请求提供授权 - 请放置HTTP授权管理器,以便请求位于HTTP授权管理器的同一级别或子级上。
有关详细信息,请参阅How to use HTTP Basic Authentication in JMeter指南。
答案 1 :(得分:1)
首先,我唯一可以解决这个问题的方法就是使用Java作为HTTP实现,选择HTTPClient4就可以了。
我有两个JMX文件示例。两项测试都证明了相同的结果。 CSV包含9个有效的身份验证信息和一个无效信用卡,只是为了确保两个案例都有效。
示例1.链接到JMX测试和文件 - HTTP Auth Manager with CSV。
这很好用,唯一的技巧是您可以在HTTP授权管理器中使用来自csv的$ {user}和$ {pass}。
示例2.链接到JMX测试和文件 - HTTP Request with URL
这是针对您描述的情况,我只是指定HTTPClient4 我测试的测试用例在5台服务器上运行,每台服务器有60个用户/线程,循环5次。因此生成了大约3000个请求。