使用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

基于python的性能负载测试Locust-6-脚本编写之使用HTTP client相关推荐

  1. python软件开发电子产品测试方向_基于Python语言的自动测试系统通用软件平台实现...

    期 No.5 2019 年 3 月 Mar. 2019 收稿日期: 2018-05-06 稿件编号: 201805027 基金项目: 中国电科第十研究所发展基金 ( SSJ-1784 ) 作者简介: ...

  2. 命令测试post_性能测试脚本编写之三

    >>>推荐阅读<<< 1.性能测试学习笔记-场景设计 2.性能测试的重要意义 3.性能分析流程及方法 4.应用系统性能调优之性能分析 ### web_url ### ...

  3. 开源you-get项目爬虫,以及基于python+selenium的自动测试利器

    写在前面 爬虫和自动测试,对于python来说是最合适不过也是最擅长的. 开源的项目也很多,例如you-get项目https://github.com/soimort/you-get.盗链和爬虫神器. ...

  4. 基于Python的收发包测试

    该测试主要目的是为了做自动发包获取相应服务器数据.数据全部采用HTTP的post方法传输,因此可以作为一个基础练手. 主要分为两大部分,储存用的json文件(用的是D:/Documents/SAVE_ ...

  5. 利用pypdf2 安装包 基于 python 制作的PDF 文档合并脚本

    本篇文章主要讲解,利用python的安装包 pypdf2 制作的可视化pdf合并工具 作者:任聪聪 日期:2022年1月27日 使用效果 说明: 1.文件列表可以手动进行编辑,一行一个. 2.可以指定 ...

  6. 基于 Python 的简单域名反查 IP 脚本

    部分数据来源:ChatGPT 编程思路 本文中,我们将使用 Python 代码实现域名反查功能.具体思路如下: 导入 socket 模块: 指定需要反查的域名 domain_name: 使用 sock ...

  7. 使用VS2005进行负载测试

    下面通过一个简单的例子来讲解VS2005是如何做负载测试的. 1. 编写一个加法程序,其中编写一个加法方法,然后调用该方法. //程序源代码 using System; using System.Da ...

  8. Selenium自动化测试入门(基于Python)

    该系列文章系个人读书笔记及总结性内容,任何组织和个人不得转载进行商业活动! 本人小白 最近在尝试学习Python 开篇记录 只为交流 相互学习O(∩_∩)O~~ Selenium,化学元素硒的英文示意 ...

  9. LodRunner实现大负载测试的四部曲(配置系统参数、配置LR、修改脚本、设置组策略)...

    见 http://www.51testing.com/?uid-97659-action-viewspace-itemid-210924 LoadRunner以下简称(LR)是目前业界最流行的压力测试 ...

最新文章

  1. VUE input唤起键盘 底部固定的标签被顶上去解决办法
  2. 卧槽!阿里《算法进阶指南》火了,完整版 开放下载!
  3. MySQL 5.7 SYS SCHEMA
  4. 在微信小程序上,帮助中心界面实现类似手风琴案例
  5. 电脑打开html不显示图片,网页不显示图片,详细教您网页不显示图片怎么解决
  6. c语言char指针用法,整理C语言中各种类型指针的特性与用法
  7. ROS 学习笔记(二):自定义消息msg+Publisher+Subscriber 示例运行
  8. 克罗谈投资策略04_感觉与现实
  9. 03.基于测试开发讲解和Cobertura框架介绍
  10. Redis BigKey
  11. java冻结jsp首行_如何实现表格的首行冻结2
  12. 突然发现自己的虚拟VMNET8 没有了,不要慌
  13. 抖音高贵气质的签名_抖音2100万赞!95后小伙“乡村维密秀”走红外媒:人生道阻且长,有梦想,谁都了不起...
  14. 我在职场上的所表达出来的个性
  15. 解决百度云下载缓慢问题
  16. 容性耦合等离子体(CCP)和电感耦合等离子体(ICP)
  17. 满意度调查中的NPS题目怎么设置?
  18. python 计算GPA
  19. Oracle基本函数-大小写转换函数
  20. 我为什么加入 TDengine

热门文章

  1. 这几天关心加密的人很多
  2. 谈谈未来简书首页拒稿界面的设计思路
  3. [摘抄]〈测试之美〉读后感
  4. 使用GDAL对HDF数据进行geoloc校正
  5. ArcGIS Pro 简明教程(3)数据编辑
  6. Visual C# .Net 环境中编程实现浮动工具栏
  7. java 动态给属性赋值_java中为实体对象的动态属性赋值
  8. istio sidecar流量接管_Istio是个啥?看完此文彻底搞懂(赠书)
  9. k8s service type_通过搭建MySQL掌握k8s(Kubernetes)重要概念(上):网络与持久卷...
  10. php数据结构之线性表,php数据结构之顺序链表与链式线性表示例