0x00

前几年,在上一家公司需要员工为创新单位投票,每天只能投一票。那就投呗,我就多点击两下投票,界面显示“一个IP每天只能投一票”,这个提示好奇怪,“一个IP”?合着不同的IP地址就是可以继续投呗?说干就干~

0x01

XX公司创新单位投票解决方案
方案一、员工手动刷
实施难度:低
技术难度:无
每天增长票数:100~200
优点:能够增强公司融入感,提高公司在员工心中形象。
缺点:适合双卡手机,外地出差人员使用wifi人员。
方案二、发朋友圈,让亲戚朋友帮忙
实施难度:中
技术难度:无
每天增长票数:50~100
优点:能够让亲戚朋友了解公司
缺点:有些人不愿意莫名其妙的投票,点赞
方案三、程序自动化
实施难度:中
技术难度:高
每天增长票数:理论最多2^32-1
优点:能够快速提高票数
缺点:风险高,可能后台会查到恶意刷票。
技术路线fiddler+jmeter自动化执行
步骤:
1使用fiddler抓包,抓取网站投票URL,写入脚本。
2观察到网站限制一个IP每天只能投票一次(并未限制用户名),可以使用IP欺骗或代理试一下,经验证代理可行。
3百度一下代理并爬取代理IP和端口号,做成csv文件。
4完善脚本,参数化,设置等待时间等。
5执行

0x02

1.打开fiddler,使用浏览器浏览投票网站,抓取创新产品URL:http://www.cnbp.net/events/ITServiceInnovation/PostVote.ashx?voteid=5943&votetype=2017innovation1,创新单位URL:http://www.cnbp.net/events/ITServiceInnovation/PostVote.ashx?voteid=5943&votetype=2017innovation3,将fiddler中报文头写入http head manager。
2.打开jmeter,将两个URL写入脚本。

3.因为网站限制一个IP每天只能投票一次,可以使用免费代理。百度一下免费代理,选择西刺免费代理(也可以是其他);
4.开始时手动将每一页的IP地址和端口号复制到Excel中,另存为csv文件,后来觉得好傻,为什么不能直接抓取页面中的IP呢?
5.了解到可以使用jmeter中的xpath可以提取网页信息,试一试呗。下图为网页响应内容:

6.jmeter中在HTTP Request后加入post processors的Xpath Extractor,下图分别为提取IP地址和端口号,可以用开发者模式,直接提取xpath:


7.但是上面的仅能得到第一个出现的IP地址和端口号,于是加入计数器counter。

8.使用Xpath Extractor只是将IP地址和端口号写入变量,还得将变量写入文件,于是用到了post processors的BeanShell PostProcessor。

代码是百度后拿来主义,改了一下,可以用。
代码如下:

FileWriter fstream = new FileWriter("G:\\Jmeter_learn\\Project\\test0323\\xicai_IP.csv",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write(vars.get("ip_address")+","+vars.get("port")+"\r");
out.close();
fstream.close();

9.使用beanshell提取后的csv如下

10.到此,IP地址爬取完毕,将IP地址和端口号参数化就可投票。


【注意事项】
(1)取IP地址时,不可频繁的请求代理网站,一定要加请求间隔且时间不要太短,会被封的;
(2)http head manager 中User-Agent需多模拟几个浏览器;
(3)免费IP地址可用性很差,可以多尝试其他多个不同网站的代理。

fiddler+jmeter自动化投票相关推荐

  1. Windows下搭建ant+jenkins+jmeter自动化接口测试框架

    Windows下搭建ant+jenkins+jmeter自动化接口测试框架 引言 为什么要持续集成? 1.减少风险 2.减少假定 3.减少重复过程 4.增强项目的可见性 5.持续集成可以带来两点积极效 ...

  2. 自动化投票区、网络问卷、问卷调查,如何规划与设计?......考验ASP.NET初学者能力的一门课...

    这是备份,原文请看我的网站:自动化投票区.网络问卷.问卷调查,如何规划与设计?......考验初学者能力的一门课 http://www.dotblogs.com.tw/mis2000lab/archi ...

  3. shell 压测_【原】shell编写一个简单的jmeter自动化压测脚本

    在公司做压力测试也挺长时间了,每次测试前环境数据准备都需要话费较长时间,所以一直在考虑能不能将整个过程实现自动化进行,于是就抽空写了一个自动化脚本,当然这个脚本目前功能十分简陋,代码也不完善,很有很多 ...

  4. Windows下搭建ant+jenkins+jmeter自动化接口测试框架(详细篇)

    引言 为什么要持续集成? 1.减少风险 2.减少假定 3.减少重复过程 4.增强项目的可见性 5.持续集成可以带来两点积极效果: (1)有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信息, ...

  5. ant jmeter 原理_Ant+Jmeter自动化接口测试

    20160823 背景 最近在看Jmeter和接口测试,发现了几个问题,基于HTTP协议的接口测试实施起来很简单,但是怎么实施接口测试就是一个难点,而且接口测试如果不做成自动化,就纯粹靠手工执行,那么 ...

  6. 一个jmeter自动化问题(对图片进行Base64、下载图片并保存到本地)

    一微信好友的问题 上周,收到一微信好友的求助:jmeter做自动化,上一个请求返回结果里面有一个链接,这个链接对应了一张图片,下一个请求的入参之一是这张图片base64加密后的字符串. 思路是比较清晰 ...

  7. shell编写一个简单的jmeter自动化压测脚本

    在公司做压力测试也挺长时间了,每次测试前环境数据准备都需要话费较长时间,所以一直在考虑能不能将整个过程实现自动化进行,于是就抽空写了一个自动化脚本,当然这个脚本目前功能十分简陋,代码也不完善,很有很多 ...

  8. 谈谈自己为公司设计的jmeter自动化部署框架

    一.前言 3/14号收到领导的要求搭建出一套性能自动化部署框架给其它业务线进行使用,接到这个通知当时头也挺大的,去年公司服务上云之前还用过pts那一套产品所以对于性能测试这块还是有些自己的见解,但是呢 ...

  9. 使用TaskManager爬取2万条代理IP实现自动投票功能

    话说某天心血来潮想到一个问题,朋友圈里面经常有人发投票链接,让帮忙给XX投票,以前呢会很自觉打开链接帮忙投一票.可是这种事做多了就会考虑能不能使用工具来进行投票呢,身为一名程序猿决定研究解决这个问题. ...

最新文章

  1. 下java7 64有什么用_Win 7 64位系统安装java 8,看完就明白了
  2. 植物MWAS研究—谷子产量与微生物组关联分析
  3. 大年初三,过年期间最让你受不了的习俗有哪些?
  4. mac mini 安装mysql数据库
  5. hpm128无法共享打印_打印机共享后不能打印的解决方法,文末有难题有高手能解决的?...
  6. 从像素坐标到相机坐标_相机标定方法
  7. Subsequence Hate CodeForces - 1363B(前缀和+dp)
  8. 多线程面试题系列(12):多线程同步内功心法——PV操作上
  9. 工业机器人国内外的发展现状
  10. 重磅!阿里推出国产开源JDK!
  11. mysql sql优化入门_Mysql入门SQL 语句优化方法30例
  12. 在html中使用javascript注意事项
  13. QT4.8.5 显示中文
  14. Java实现Base64编码和解码的方式
  15. 用 rust 写算法
  16. redis查看连接数
  17. 使用js实现百度地图与高德地图经纬度的转换
  18. 2022-2027年中国服装辅料行业市场全景评估及发展战略规划报告
  19. 欧拉-拉格朗日方程(The Euler-Lagrange equation)
  20. 使用CURL抓取https网页报错的一种解决方法

热门文章

  1. 为什么SLIC算法得到的超像素个数和预期的不一致
  2. macOS Mojave(软件篇):Google Chrome for Mac 右键失效问题
  3. python 网络_科学网-python 社会网络分析工具之networkx-郗强的博文
  4. nginx 日志分析示例
  5. 乔布斯 创新精神赢得尊重
  6. [android]使用android自带josn解析
  7. 苹果电脑python编程里面怎么切到中文_Mac苹果笔记本上实现Python多版本相互切换功能...
  8. res.setHeader()和res.writeHead()
  9. threejs 热力图做成材质_Threejs 高度热力图
  10. python编程查找黑洞数_黑洞数筛选Python实现