博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于python的性能负载测试Locust-6-脚本编写之使用HTTP client
阅读量:5136 次
发布时间:2019-06-13

本文共 1425 字,大约阅读时间需要 4 分钟。

使用HTTP client

每个HttpLocust实例的client属性中都有一个HttpSession实例。HttpSession类是requests.Session的子类并且通过get,post,put,delete,head,patch和options方法发送HTTP请求,然后用作Locust的统计报告。HttpSession实例保存了coookies,可以用于登录网站并且在不同的requests之间保持session。client属性也可以被Locsut实例的TaskSet实例所引用,方便重新得到client并且在任务里发送HTTP请求。

下面是对/about路径发送GET请求的例子(假设self是TaskSet或者HttpLocust类的实例):

response = self.client.get("/about") print "Response status code:", response.status_code print "Response content:", response.content

下面是关于POST请求的例子:

response = self.client.post("/login", { "username":"testuser", "password":"secret"})

安全模式

HTTP client被配置成在安全模式下运行。因为连接错误,超时,或者其它类似错误引起的请求失败都不会抛出异常,而是返回一个空响应对象。这个请求将被统计为失败。返回的空响应的content属性被设置为None,并且status_code被设置为0。

手动设置一个请求为成功或者失败

默认HTTP响应为2xx之外的请求将被标识为失败。大部分时候这样判断都没问题,但是有时候返回404是我们期望的结果,而200不是我们期望的,那么就需要手动设置成功或者失败。

即使响应码是正常的我们也可以通过catch_response和with语句标识这个请求为失败:

with client.get("/", catch_response=True) as response: if response.content != "Success": response.failure("Got wrong response")

同样的如果一个请求的响应为HTTP错误码,我们也可以标识它的结果为成功:

with client.get("/does_not_exist/", catch_response=True) as response: if response.status_code == 404: response.success()

通过动态参数进行URLs请求的分组

一些网站的页面URLs包含一些动态参数,这种情况也比较普遍。一般情况下,可以传递name语句给HttpSession的不同request方法,从而实现在Locust的统计报告里将这些URLs划为一组。

例子:

# 这些request请求的统计结果将会被分组放在: /blog/?id=[id]for i in range(10): client.get("/blog?id=%i" % i, name="/blog?id=[id]")

转载于:https://www.cnblogs.com/mu-shi-shi/p/6070001.html

你可能感兴趣的文章
Linux-各种姿势(less\vi等)打开各种类型的文件(txt/csv/xlsx等)出现不能打开(全乱码、部分乱码、二进制文件等)的问题...
查看>>
演示Spring框架的JDBC模板的简单操作
查看>>
【Linux】【Services】【SaaS】Docker+kubernetes(2. 配置NTP服务chrony)
查看>>
Core Animation学习
查看>>
QT快捷键
查看>>
您上次已将进行的搜狗输入法的安装或卸载,操作要求重启。您在重启之后才能继续新的输入法安装卸载程序。...
查看>>
Python 读取txt文件,排序并写回文件
查看>>
Hive UDAF介绍与开发
查看>>
iframe 自适应高度 [记录]
查看>>
WebForm 母版页使用
查看>>
Mysql存储引擎
查看>>
Java内部类
查看>>
5 Http请求中文乱码处理
查看>>
整理下.net分布式系统架构的思路
查看>>
linux 更新php 版本
查看>>
JAVA网络编程
查看>>
spark(四)
查看>>
工作总结--搞笑
查看>>
2017 hdu 新生赛1008 友好整数 (状态压缩)
查看>>
CodeReview是开发中的重要一个环节,整理了一些关于jupiter for java
查看>>