性能测试工具 python + locust 进行接口性能测试的时候遇到了问题!!!

kaka谁说不是 · 2018年10月23日 · 最后由 kaka谁说不是 回复于 2018年10月24日 · 2749 次阅读

我们公司比较特殊,直接将 host + api + Params + signature + app_secret 拼接后 作为 url 进行 post 请求,得出的 url 示例如下:
127.0.0.1:5000/dealer/loginV2.json?Json={"userphone":"11111111111", "userpwd":"12345678"}&signature=87f9059e4772c202252c7607c4899719&source=abcdefg
但是 locust 进行访问的格式是 self.client.post('/about', json={}),代码截图如下:

报错信息:

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
最佳回复

Json={"userphone":"11111111111", "userpwd":"12345678"}&signature=87f9059e4772c202252c7607c4899719&source=abcdefg

我意思是这一串参数转换为一个 json, signature 也是 json 其中一个参数

共收到 10 条回复 时间 点赞

把你的参数转换成 json 格式试下

Jerry li 回复

如果用 self.client.post(url, json=params) 这种方式,不行的吧。 我们是会将 params 用 md5 加密 然后拼接的。 如果按照正常的格式请求,locust client 并没有转换加密的啊。

Jerry li 回复

加密获得 signature 参数, 还有 app_secret 也是要拼接进去的。。

Json={"userphone":"11111111111", "userpwd":"12345678"}&signature=87f9059e4772c202252c7607c4899719&source=abcdefg

我意思是这一串参数转换为一个 json, signature 也是 json 其中一个参数

Jerry li 回复

搜噶,我试一下哈。

chen 回复

这个肯定不是呀,编码是请求参数里一般含中文才需要编码的。不过我也遇到过了,我编码之后 就提示我 signature is invalid。。。还没解决。

Jerry li 回复

成了哈,原来这样就行了。。。 思维固化了。。感谢感谢。

URL 只支持 ASCII 的编码 ,"{" 这个应该不是 ASCII 的编码,需要做一个 urlquote 的转义就好应该

yitu tester 回复

我发现如果 url 里没有中文,就没关系,如果带中文就需要转义一下的。

kaka谁说不是 关闭了讨论 10月25日 09:04
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册