curl发送post请求时payload带参数引用

背景 很多web页面F12抓包导出接口到curl bash脚本进行循环调用时,需要给post请求时的payload传入可变参数,遇到了一些坑,在此记录下。 curl发送post请求时payload带参数引用 正常的curl请求,payload是json格式,所以我们在拼接的时候要按照这个格式。 例如,原始payload如下, {"taskName":"deploy-task-1712447852127"} 未使用参数引擎的完整请求命令如下, curl 'http://xx.xx/xx/xx' -d '{"taskName":"deploy-task-1712447852127"}' 如果payload的时间戳会自动变化,就需要拼接payload,完整的请求命令如下, ts=$(date +%s)000 curl 'http://xx.xx/xx/xx' -d "{\"taskName\":\"deploy-task-${ts}\"}" 注意: 1、整个payload要用双引号括起来; 2、payload里的其他特殊字符使用\进行转义,如果需要批量转义payload里的双引号,可以使用如下脚本, sed -r -e 's/"/\\"/g' f.txt

Continue Reading

使用Fiddler替换URL

一、背景介绍 实际的软件测试和开发中,经常会遇到一个get或post请求需要重定向以达到调试的效果,苦恼了几天后,今天百度谷歌了一下,找到了答案。 二、实现过程 例如,我们想让https://peloo.net/?p=1070在站内重定向访问https://peloo.net/?p=1018,我在实际工作中就遇到类似的问题,下面演示过程。 1、过滤此站点的会话,设置如下图,     访问https://peloo.net/?p=1070,如下图,   访问https://peloo.net/?p=1018,如下图,   我们看到,两个网址的内容不一致。   2、按ALT + Q,输入 urlreplace p=1070  p=1018后回车。     3、在谷歌浏览器访问 https://peloo.net/?p=1070 ,成功重定向到 https://peloo.net/?p=1018 网址的内容,如下图,  

Continue Reading

JMeter如何控制业务比例进行性能测试

一、背景介绍 一直困惑网上的关于JMeter控制业务比例的思想,链接为https://www.jianshu.com/p/db092cbcceb1,今天琢磨到凌晨两点,终于解惑。 假设要测试一个电商网站的性能, 在实际的场景中,有四个业务分别是查看积分明细、查看首页广告、浏览商品详情、浏览商品评价,业务使用比例为1:3:5:6,如何使用JMeter来模拟实现? 二、实现过程 当然新建四个线程组,分别对应四个业务,按照既定比例设定线程数的方式不可行,因为业务的响应时间不可能一致。 我们用另外一种方式来实现。 既定的比例加起来和为15,我们可以把JMeter的运行次数与15取余,前15次取余值的范围落在下面四个范围(这里要用到JMeter的元件IF控制器): {1} {2 3 4} {5 6 7 8 9} {10 11 12 13 14 15}    16 17 18 19 …… 假设四个业务分别对应的业务代码是D、C、B、A,则对应业务的控制逻辑如下, A  ${__counter(true,)}%15<1 B  ${__counter(true,)}%15<=4 && ${__counter(true,)}%15>1 C  ${__counter(true,)}%15>4 && ${__counter(true,)}%15<=9 D  ${__counter(true,)}%15>9 && ${__counter(true,)}%15<==0 大于15的运行次数也可以以这种方式类推,进行比例划分。 1  查看积分明细的业务比例在JMeter中设置为${__counter(true,)}%15<1,如下图, 2  查看首页广告的业务比例设置为${__counter(true,)}%15<=4 && ${__counter(true,)}%15>1,如下图, 3  浏览商品详情的业务比例设置为${__counter(true,)}%15>4 && ${__counter(true,)}%15<=9,如下图, 4 …

Continue Reading

Fiddler代理FireFox浏览器

一、背景介绍 一直用Fiddler抓取Chrome浏览器的HTTP包,因为不用任何设置就可以。于是有个疑问,如果一些应用只能在Firefox浏览器上才能运行或者在Firefox浏览器表现的效果较好,那怎么调试? bing了下找出了答案。 二、实现过程 1  设置Firefox代理 打开Firefox的选项–常规–网络代理–设置,选择“手动代理配置”,所填参数如下图, 其他版本的Firefox请举一反三。 2  设置fiddler代理 fiddler的代理主要是配置一个和本地不冲突的端口来监听外来请求。 设置好以后,可以用别的机器,亦可以本地联网经过fiddler代理,配置好后的fiddler抓包如下(远程抓包),

Continue Reading

Nginx吞吐量实测

传说中的Nginx吞吐量性能到底如何,小弟这里献丑测试一番。 一、测试准备 1  硬件 1)DELL 2U 服务器  被测对象 CPU : Intel(R) Xeon(R) CPU           X5650  @ 2.67GHz  12核24线程 MEM : 64G 2) 自用PC机  压力机  CPU : Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz  4核8线程 MEM : 16G 2  软件 1) DELL 2U 服务器  被测对象 IP:172.17.1.170 web server : openresty 2)  自用PC机  压力机  压力测试工具:ab 3  一些设定 1)…

Continue Reading

Nginx接口桩测试

    少数情况下,我们要模拟第三方接口来测试我们自己项目的程序,比如,迅雷快鸟公司和电信合作,电信的接口发布滞后迅雷一周,电信发布接口前,测试人员很闲,浪费了时间,而发布后工作量剧增,所以如果能提前拿到电信方的接口标准文档,模拟其既定的接口,就可以充分利用时间,提高发布质量。     主要实现的方式就是在Nginx端模拟静态文件发布,静态文件包含接口返回的信息,比如状态码等,这时候可以联合本项目其他模块进行集成测试。       静态发布文件,在Nginx服务端配置也非常简单,如下,       location /test {             root /tmp;             index interface;     }   interface 是/tmp目录下的一个文件,内容可以是你的接口要返回的东西,比如一个字符串  {"id"=89990,"sid"=0099}     在浏览器端输入    http://domainname/test/interface  即可模拟返回interface里面的内容。  

Continue Reading

Nginx代理Jira

Jira(敏捷项目管理系统)安装完毕后,默认是个tomcat服务器,对外的服务端口是8080,用户访问、机器性能都不太好,所以建议搞个nginx做前端代理。   1  安装OpenResty 目前openresty经过改造,比nginx更加强大, OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。 此处我们以root用户来编译安装openresty yum -y install readline-devel pcre-devel openssl-devel gcc wget -c -P /tmp https://openresty.org/download/openresty-1.9.7.5.tar.gz cd /tmp tar xvf /tmp/openresty-1.9.7.5.tar.gz cd openresty-1.9.7.5 ./configure –prefix=/opt/openresty \ –with-luajit \ –without-http_redis2_module \ –with-http_iconv_module make && make install groupadd nginx useradd -s /sbin/nologin -M -g nginx…

Continue Reading

Nmon和Nmon analyzer的下载和使用

  在性能测试中,对被测对象的监控很重要,其中nmon针对Linux服务器的监控效果不错,可以在一段时间内生成数据,配合nmon analyzer导入数据文件可生成详细的excel报表。 一、nmon的下载和使用   1  nmon下载   nmon官网下载网址是  http://nmon.sourceforge.net/pmwiki.php?n=Site.Download , 有二进制和源码两种下载方式,一般情况下,Linux服务器都是正常的发行版,可以下载二进制版本的nmon, 不需自行编译。   官网支持的架构主要有arm x86_64 power 等, 我们主要用到的架构是x86_64,可点击此硬件架构版本下载,如下图,     在被监控服务器上运行如下命令完成下载和解压, wget -c -P . https://svwh.dl.sourceforge.net/project/nmon/nmon16d_x86.tar.gz mkdir nmon && cd nmon  tar zxvf nmon16d_x86.tar.gz   解压出来有很多文件,选取合适自己Linux发行版本,如我的服务器版本是CentOS6.5,运行命令, chmod +x nmon_x86_64_centos6 cp -v nmon_x86_64_centos6 /usr/bin   执行nmon命令看结果:   nmon     分别按下键盘上的 c n k 即可监控Linux的CPU、内存和内核运行情况,其他类型的监控,可以按照帮助信息完成。       二、nmon…

Continue Reading

多台VPS进行JMeter分布式压力测试

最近想研究下Jmeter的分布式测试,于是在Linode云主机上折腾了下,此厂商的主机可以自选硬件配置,收费按照小时计算,所以操作的时候可要手快啊。   一、环境信息 1  被测服务器 日本VPS主机 1152GB硬盘 16核心CPU 内存65536MB IP地址:peloo.net 2  jmeter主控制机 美国VPS主机 内存2048MB 单核心CPU 30GB硬盘 IP地址:173.255.243.59 3  jmeter从机 配置同主控制机,位置同在美国,属于同一个机房 IP地址:173.255.220.37  173.255.223.112     二、环境配置 1  被测服务器 被测服务器上搭建了WordPress网站,架构为Nginx+PHP+MySQL 2  jmeter主控制机配置 (1)  下载官网jmeter tgz文件到tmp目录并解压 wget -c -P /tmp http://mirrors.cnnic.cn/apache//jmeter/binaries/apache-jmeter-3.1.tgz cd /tmp tar zxvf apache-jmeter-3.1.tgz (2)  复制解压目录到/usr/local cp -rv /tmp/apache-jmeter-3.1 /usr/local ln -sv /usr/local/apache-jmeter-3.1 /usr/local/jmeter (3)  添加jmeter环境变量  …

Continue Reading

Fiddler域名重定向设置

    APP实际测试中接口兼容性测试,经常会用上个版本的APP包来测试新开发的接口是不是也可正常运行, 经常在一个手机上安装卸载新旧APP包,麻烦, 域名重定向可以帮你减轻重复劳动。       比如你要验证生产环境的APP包是否可以在测试环境的新接口上运行正常,可以在设置好手机代理后,对fiddler进行如下设置,     打开tools—HOSTS,勾选域名重定向,第一个填写请求重定向后的域名或IP地址,第二个填写原始请求的域名或IP地址  

Continue Reading