post请求三种方式
以zabbix登陆接口做测试,zabbix-api:http://192.168.228.45/zabbix/api_jsonrpc.php
curl方式请求
准备工具:yum install -y curl
[root@zabbix job]# curl -H "Content-Type:application/json" -X POST -id '{"jsonrpc": "2.0",
"method": "user.login",
"params": {"user": "Admin","password": "zabbix"},
"id": 1,
"auth": null}' http://192.168.228.45/zabbix/api_jsonrpc.phpHTTP/1.1 200 OK
Date: Wed, 01 Jul 2020 09:38:17 GMT
Server: Apache/2.4.6 (CentOS) PHP/5.4.16
X-Powered-By: PHP/5.4.16
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: POST
Access-Control-Max-Age: 1000
Content-Length: 68
Content-Type: application/json{"jsonrpc":"2.0","result":"08f47ee4fa9d55b0928abcd637d9e00e","id":1}[root@zabbix job]#
[root@zabbix job]# curl -H "Content-Type:application/json" -X POST -id '{"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "zabbix"},"id": 1,"auth": null}' http://192.168.228.45/zabbix/api_jsonrpc.php
fiddler方式请求
下载安装fiddler: https://www.telerik.com/fiddler
打开组合器输入对应的api地址
post请求方式输入对应的http信息头:Content-Type: application/json
参数:{"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "zabbix"},"id": 1,"auth": null}
点击执行即可查看post请求结果:
此时就能看到json格式返回的zabbix用户登录密钥口令
jmeter方式请求
下载安装jmeter工具: https://jmeter.apache.org/download_jmeter.cgi
jmeter下载官网tar包即可: apache-jmeter-5.3.tgz windows,linux均可使用(均需要jdk环境)
打开jmeter,右击测试计划添加线程组
右击线程组添加一个取样器-----HTTP请求任务
http请求任务填入对应的参数:
这段json参数是取zabbix host主机信息的测试参数
{"jsonrpc": "2.0","method": "host.get","params": {"output": ["hostid","host"],"selectInterfaces": ["interfaceid","ip"]},"id": 2,"auth": "e54c3ed48dec483879d3e7b2dc26a640"}
右击线程组–添加—配置元件----http信息头管理器:
“Content-Type:application/json”
线程组----添加----监听器(结果输出工具)—查看结果树:
接着回到http请求点击上方播放按钮开始任务:
此时即可通过观察结果来查看对应的调用结果是否成功:
在linux服务器我们可以通过这个小东西进行压力测试
首先我们在dashboard ui 图形化界面测试是否可以调用成功
测试前我们可以设置本次测试需要运行的次数、并发次数、调度器一共需要执行测试的时间(一般五分钟的并发次数较为稳定、准确)
然后将其保存为运行脚本文件 http-zabbix-login.jmx
首次保存即可直接点击上方的保存按钮,另存为可以点击另存为:
将其上传至linux服务器机器:
<intProp name="LoopController.loops">-1</intProp> 循环次数:-1永远循环</elementProp><stringProp name="ThreadGroup.num_threads">100</stringProp> 并发数 100<stringProp name="ThreadGroup.ramp_time">3</stringProp> 3秒之后开始每秒100次并发请求,前三秒的每秒请求为 100/3次<boolProp name="ThreadGroup.scheduler">true</boolProp><stringProp name="ThreadGroup.duration">30</stringProp> 持续执行30sjmeter -n -t http-zabbix-login.jmx -l http-zabbix-login.jtl
-n 面图形化界面执行 -t 指定执行脚本文件 http-zabbix-login.jmx -l 输出结果文件 http-zabbix-login.jtl [root@zabbix job]# ./jmeter.avg
请输入要执行的脚本文件 jmx 文件全称, 与 jtl 输出结果文件全称: eg : http-zabbix-login.jmx http-zabbix-login.jtl*** 请输入要执行的脚本文件 jmx 文件全称, 与 jtl 输出结果文件全称: eg : http-zabbix-login.jmx http-zabbix-login.jtl
Please input a jmx---filename1:http-zabbix-login.jmx
Please input a jtl---filename2:http-zabbix-login.jtl
Creating summariser <summary>
Created the tree successfully using http-zabbix-login.jmx
Starting standalone test @ Wed Jul 01 18:13:57 CST 2020 (1593598437817)
Waiting for possible Shutdown/StopTestNow/HeapDump/ThreadDump message on port 4445持续运行时间 TPS(并发)请求数 平均请求时间(Avg ms)
summary + 19 in 00:00:02 = 10.1/s Avg: 98 Min: 51 Max: 376 Err: 0 (0.00%) Active: 1 Started: 2 Finished: 1
summary + 282 in 00:00:26 = 10.7/s Avg: 85 Min: 49 Max: 891 Err: 0 (0.00%) Active: 0 Started: 4 Finished: 4
summary = 301 in 00:00:28 = 10.7/s Avg: 85 Min: 49 Max: 891 Err: 0 (0.00%)
Tidying up ... @ Wed Jul 01 18:14:26 CST 2020 (1593598466603)
... end of run
this is tpsdata avg : 10.50 平均TPS数值
this is avgdata avg (ms) : 89.33
this is avgdata avg (s) : .0893 平均请求响应时间(s)上为自己写的一个求平均值的小脚本:
[root@zabbix job]# cat jmeter.avg
#!/bin/bash
echo "请输入要执行的脚本文件 jmx 文件全称, 与 jtl 输出结果文件全称: eg : http-zabbix-login.jmx http-zabbix-login.jtl"
echo -e "\033[33;40m *** 请输入要执行的脚本文件 jmx 文件全称, 与 jtl 输出结果文件全称: eg : http-zabbix-login.jmx http-zabbix-login.jtl \033[0m"
read -p "Please input a jmx---filename1:" jmx
read -p "Please input a jtl---filename2:" jtljmeter -n -t $jmx -l $jtl &> ./jmeter.resful
#jmeter -n -t http-zabbix-login.jmx -l http-zabbix-login.jtl &> jmeter.resful
cat ./jmeter.resfulgawk '{ print $7 }' ./jmeter.resful | grep s | awk -F "/" '{ print $1 }' > ./tps
gawk '{ print $7,$9 }' ./jmeter.resful | grep s | awk '{ print $2 }' > ./avg
tpsdata=`gawk '{ a += $1 }END { print a }' ./tps`
avgdata=`gawk '{ a += $1 }END { print a }' ./avg`
wl=`cat ./tps |wc -l`
echo "this is tpsdata avg : `echo "scale=2; $tpsdata / $wl" | bc`"
echo "scale=2; $tpsdata / $wl" | bc > ./tpsdata
echo "this is avgdata avg (ms) : `echo "scale=2; $avgdata / $wl" | bc`"
avgs=`echo "scale=2; $avgdata / $wl" | bc`
echo "this is avgdata avg (s) : `echo "scale=4; $avgs / 1000" | bc`"
echo "scale=4; $avgs / 1000" | bc > ./avgdata
不要因一次挫败就忘记你原先想要到达的地方。
post请求三种方式相关推荐
- 使用apache-poi生成excel文件与同步请求三种方式与文件下载
使用apache-poi生成excel文件 a)添加依赖: <!-- poi依赖--><dependency><groupId>org.apache.poi< ...
- Java 实现 HTTP 请求的三种方式
除了本文推荐的几种方式,强烈推荐 OkHttp 目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现.HTTPClient对HTTP的封装性比较 ...
- .net session 有效时间_Python中requests模拟登录的三种方式(携带cookie/session进行请求网站)...
这篇文章主要介绍了python中requests模拟登录的三种方式(携带cookie/session进行请求网站),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋 ...
- java实现HTTP请求的三种方式
From: https://www.cnblogs.com/hhhshct/p/8523697.html 目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的 ...
- AJAX异步请求解决跨域问题的三种方式
一 什么是跨域 出于浏览器的同源策略限制.同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说We ...
- vue三种ajax请求方式,vue请求数据的三种方式
请求数据的方式: vue-resource 官方提供的 vue的一个插件 axios fetch-jsonp 一,vue-resource请求数据 介绍:vue-resource请求数据方式是官方提供 ...
- linux+Qt 下利用D-Bus进行进程间高效通信的三种方式
linux+Qt 下利用D-Bus进行进程间高效通信的三种方式 原文链接: https://www.cnblogs.com/wwang/archive/2010/10/27/1862552.html ...
- SpringBoot静态获取 bean的三种方式,你学会了吗?
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/showchi/article/details/97005720 注意:调用者要被spring管理 ...
- 在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )
系统版本:centos6.5版本 java版本:1.7 一.准备工作 1.java -version 检查是否有java环境,没有则需要去安装并配置到环境变量中. 2.下载tomcat包,下载地址:h ...
最新文章
- Qt Creator 常用快捷键
- [六]RabbitMQ-客户端源码之AMQCommand
- 一道面试题:猫大叫了一声...
- c语言-基本计算 pm2.5,C语言程序设计题(A卷).doc
- VC socket 发送类对象
- java有push方法么_[Java教程]js中push和join方法使用介绍
- 机器学习(3)——K-近邻算法改进约会网站的配对效果实例
- endnote 参考文献加序号_EndNote同一文章的插入不同编号参考文献的方法 | 科研动力...
- STM32 低功耗STOP模式,RTC唤醒
- 数据结构与算法分析:C语言描述(原书第2版) PDF+源代码+习题答案
- OSR推出在线SSL/TLS安全测试工具
- 旷视研究院张祥雨:3年看1800篇论文,28岁掌舵旷视基础模型研究
- Make命令与Makefile文件
- 教育知识与能力·中学
- mysql三线表导出_R|tableone 快速绘制文章“表一”-基线特征三线表
- 各类路由器默认密码一览
- ctf文件上传基本思路+例题
- NURBS求取basis函数的代码
- 利用python opencv2进行多图片摘要
- MATLAB GUI学习———简易计算器