curl模拟GET/POST请求、ab压力测试_curl 压测-程序员宅基地

技术标签: curl  ab压力测试  服务计算  

curl

在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。 常见参数介绍:

-A/--user-agent <string>          设置用户代理发送给服务器
-b/--cookie <name=string/file>    cookie字符串或文件读取位置
-c/--cookie-jar <file>            操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>         断点续转
-D/--dump-header <file>           把header信息写入到该文件中
-d/--data <data>                  HTTP POST方式传送数据
-e/--referer                      来源网址
-f/--fail                         连接失败时不显示http错误
-H/--header <line>                自定义头信息传递给服务器
-o/--output                       把输出写到该文件中
-O/--remote-name                  把输出写到该文件中,保留远程文件的文件名
-r/--range <range>                检索来自HTTP/1.1或FTP服务器字节范围
-s/--silent                       静音模式。不输出任何东西
-T/--upload-file <file>           上传文件
-u/--user <user[:password]>       设置服务器的用户和密码
-w/--write-out [format]           什么输出完成后
-x/--proxy <host[:port]>          在给定的端口上使用HTTP代理
-X/--request <command>            指定什么命令
-v                                显示请求交互的详细信息
                                    * 表示 curl 任务;
                                    > 发送的信息;
                                    < 返回的信息
-#/--progress-bar                 进度条显示当前的传送状态

curl GET请求

  • curl -v 127.0.0.1:8080/login Method:GET
    在这里插入图片描述
  • curl -v 127.0.0.1:8080/upload Method:GET
    在这里插入图片描述
  • curl -v 127.0.0.1:8080/static/images/favicon.ico >> favicon.ico Method: GET (获取文件数据保存到文件中)
    在这里插入图片描述

curl POST请求

  • curl -v 127.0.0.1:8080/login -X POST -d "username=liuyh73&&password=acwab" Method:POST
    在这里插入图片描述
    如果post信息为json格式的数据,则可以使用-H参数来声明请求的Content-Type:
curl -v 127.0.0.1:8080/login -X POST -H "Content-Type:application/json" -d '"username": "liuyh73", "password":"acwab"'
  • curl -v 127.0.0.1:8080/upload -F "uploadfile=@E:/mygo/src/github.com/liuyh73/go-web-form/static/images/favicon.ico" Method:POST
    在这里插入图片描述

ab(apache benchmark)

-n  即requests,用于指定压力测试总共的执行次数。
-c  即concurrency,用于指定的并发数。
-t  即timelimit,等待响应的最大时间(单位:秒)。
-b  即windowsize,TCP发送/接收的缓冲大小(单位:字节)。
-p  即postfile,发送POST请求时需要上传的文件,此外还必须设置-T参数。
-u  即putfile,发送PUT请求时需要上传的文件,此外还必须设置-T参数。
-T  即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为text/plain。
-v  即verbosity,指定打印帮助信息的冗余级别。
-w  以HTML表格形式打印结果。
-i  使用HEAD请求代替GET请求。
-x  插入字符串作为table标签的属性。
-y  插入字符串作为tr标签的属性。
-z  插入字符串作为td标签的属性。
-C  添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。
-H  添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。
-A  添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。
-P  添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。
-X  指定使用的和端口号,例如:"126.10.10.3:88"。
-V  打印版本号并退出。
-k  使用HTTP的KeepAlive特性。
-d  不显示百分比。
-S  不显示预估和警告信息。
-g  输出结果信息到gnuplot格式的文件中。
-e  输出结果信息到CSV格式的文件中。
-r  指定接收到错误信息时不退出程序。
-h  显示用法信息,其实就是ab -help。
  • 安装:CentOS环境sudo yum -y install httpd-tools
    在这里插入图片描述
  • ab -c 100 -n 10000 localhost:8080/login
    在这里插入图片描述
    在这里插入图片描述
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liuyh73/article/details/84193155

智能推荐

GradientBoosting和AdaBoost实现MNIST手写体数字识别_boostingminst手写数字集-程序员宅基地

文章浏览阅读2.9k次。一、两种算法简介:Boosting 算法简介Boosting算法,我理解的就是两个思想:1)“三个臭皮匠顶个诸葛亮”,一堆弱分类器的组合就可以成为一个强分类器;2)“知错能改,善莫大焉”,不断地在错误中学习,迭代来降低犯错概率当然,要理解好Boosting的思想,首先还是从弱学习算法和强学习算法来引入:1)强学习算法:存在一个多项式时间的学习算法以识别一组概念,且识别的正确..._boostingminst手写数字集

Python快速安装dlib库,无需安装CMake,Boost等_import dlib报错 (python引入库)-----无需安装cmake和boost-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏7次。安装dlib一直有很多苦恼,这是我看到的一篇文章。转载于:https://www.cnblogs.com/AdaminXie/p/9032224.htmlWindows 下在 Python (Anaconda) 中安装 Dlib 库Dlib 的安装Dlib 下载:dlib-19.7.0-cp36-cp36m-win_amd64.whl在 Anaconda Prompt 中先利用 ‘cd’ 命令定位到 Dlib 的 whl 文件 所在路径,‘dir’ 命令可以查看当前路径下的文件;然后 pip _import dlib报错 (python引入库)-----无需安装cmake和boost

DeepFM升级版XDeepFM模型_xdeepfm模型简介-程序员宅基地

文章浏览阅读789次,点赞3次,收藏5次。本文参考自 推荐系统遇上深度学习(二十二)--DeepFM升级版XDeepFM模型强势来袭!,在学习原文的基础上加入一些个人的理解和整理。1、引言对于预测性的系统来说,特征工程起到了至关重要的作用。特征工程中,挖掘交叉特征是至关重要的。交叉特征指的是两个或多个原始特征之间的交叉组合。例如,在新闻推荐场景中,一个三阶交叉特征为AND(user_organization=msra,item_c..._xdeepfm模型简介

R语言gganimate动态图_r语言做动态图-程序员宅基地

文章浏览阅读5.7k次,点赞2次,收藏21次。library(gapminder)library(dplyr)library(gganimate)gapminder %>% ggplot(aes(x = gdpPercap, y = lifeExp, size = pop, color = continent)) + geom_point() + scale_x_log10() + transition_m..._r语言做动态图

UE4 鼠标控制actor旋转_ue4鼠标控制物体旋转移动-程序员宅基地

文章浏览阅读6.5k次,点赞3次,收藏25次。物体Tick事件转动,初始不动则Rotate 都为0,关卡蓝图里边鼠标左键事件,鼠标点击和释放的位置做减法 并设置目标的Rotate属性,Clamp做速度控制.不知道其他有没有好的办法,项目需要没找到相关案例 临时写的..._ue4鼠标控制物体旋转移动

Android 应用开发基础总结_android开发-程序员宅基地

文章浏览阅读833次。Android Studio:Android Studio 是目前最流行的 Android 开发工具,掌握 Android Studio 的功能、配置、使用方法等,有助于提高开发效率、降低开发成本。Java 编程语言:Java 是 Android 应用开发的基础编程语言,需要掌握 Java 中的基础语法、数据类型、运算符、条件语句、循环语句、数组等基础知识。布局和控件:Android 应用的布局和控件是应用程序的基础,掌握 Android 布局文件、控件的种类、属性和样式等方面,是应用开发的必要基础。_android开发

随便推点

logback配置文件报Failed to create converter for [%clr] keyword-程序员宅基地

文章浏览阅读1.9k次。参考博客:Springboot项目启动报错:Failed to create converter for [%clr] keyword_failed to create converter for [%clr] keyword

spring cloud服务报错feign.RetryableException: Connection refused-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏6次。在服务器上部署微服务的时候,框架是eureka,feign,zull等,出现一下错误信息:Caused by: feign.RetryableException: Connection refused (Connection refused) executing GET http://xxx-server/api/v1/cunchu/bucket/exist?bame=server-abc搜索网上教程:https://github.com/spring-cloud/spring-.._feign.retryableexception: connection refused

解决Could not autowire. No beans of 'xxx' type found.报错_could not autowire. no beans of 'socket' type foun-程序员宅基地

文章浏览阅读1.3w次,点赞10次,收藏11次。could not autowire. No beans of ' xxxx ' type found这个问题算经常遇到,至于怎么解决,我百度了下,百分之90的人都说的是直接修改IDEA报错级别,不过个人认为【这旁门左道,简直是误人子弟】故亲测......出现问题时:解决方案:方法1:在mapper文件上加@Repository注解,这是从spring2.0新增的一个注解,用于简化..._could not autowire. no beans of 'socket' type found.

qt 预言家 翻译_qt的预言家翻译-程序员宅基地

文章浏览阅读1.1k次。虽然时间已过去很久,但我还是要回复一下,因为我找到了解决方法,希望能对其他人有帮助。问题的原因在于:QTextEdit中使用的对象QWidgetTextControl中的复制、粘贴等右键菜单选项在qt_zh_CN.qm中没有被翻译。解决方法:打开qt-everywhere-opensource-src-5.2.0\qtbase\src\widgets目录,用Qt Creator打开widg_qt的预言家翻译

【PHM】PHM算法与智能分析技术——数据处理与特征提取方法1_时域特征提取_phm建模方法论之 数据特征提取-程序员宅基地

文章浏览阅读1w次,点赞12次,收藏107次。PHM算法与智能分析技术——数据处理与特征提取方法1数据预处理目标数据预处理常用方法本系列来自于北京天泽智云科技有限公司的PHM算法与智能分析技术公开课,内容非常有助于研究者对PHM的理解和学习,因此整理为文字版,方便阅读和笔记。公开课视频地址本堂课的主要介绍数据处理的宏观的目标,就是要降低工业场景中建模的3B问题,然后介绍一些常见的数据处理的方法,包括工矿分割数据清洗,针对运动数据的..._时域特征提取_phm建模方法论之 数据特征提取

2021-01-28_sudo apt-get install bc tree-程序员宅基地

文章浏览阅读51次。树莓派高阶课程3:Linux内核源码目录树扫盲分析,配置Linux内核适合树莓派相关操作及内核编译,移植一,Linux内核源码目录树扫盲分析:1 sudo apt-get install treetree //查看目录树大约1.3w个C文件:1100w行代码Linux是开源,免费,Linux开源社区工作者共同维护Linux是一个开源的,支持多架构多平台代码,可移植性非常高但是Linux内核编译出来一般就几M ----4M因为支持多平台多架构,所以编译之前要配置,配置成适合的目标平台来用平台:A_sudo apt-get install bc tree