今天要简单讲一下Modify Headers这个Firefox插件,记录一下我是怎么使用它的。

Modify Headers: https://addons.mozilla.org/zh-CN/firefox/addon/modify-headers/

简单的说,这个插件的主要作用是对Firefox的HTTP request headers进行添加、修改和过滤等操作。当我们访问网站的时候,某些网站服务器会对访问网站的浏览器Header信息进行判断,然后决定用什么方式把网站内容呈现给浏览器。服务器也会根据浏览器的header中包含的其他信息(譬如浏览器所在的IP地址)判断是否要讲某一特定的信息呈现给浏览器。

在我平时的测试工作中,因为网站有不同的语言,针对不同国家的用户展现不同的内容,如中国用户在网站上将看到中国的客户服务电话,而美国用户将看到美国客户服务电话;又如中国地区访问网站将看到社交区域会显示微博的信息,而美国或其他地区的用户则将看到Twitter的Twits等等。

如果是在Production环境,我们可以利用VPN,以不同国家地区的IP来访问网站,从而检查网站是否对地域信息进行成功检测。但是如果我们在内部开发环境中测试,由于内部环境只能接受内部IP的访问,我们就不能用VPN进行这项工作了。这时候,就可以利用类似Modify Headers的插件,通过修改true-client-ip的值,来模拟从不同地域访问网站,而不用担心从外部网络无法访问的问题。

使用方法

安装插件以后,默认在status bar会显示一个小图标。

选择Add,右边的Header name, Header value和Descriptive comment等字段都会变得可编辑。由于我们要模拟不同地域的IP对网站进行访问,所以Header name字段中,我们填入true-client-ip。Header value中,填入你要模拟的地域IP地址,然后在Descriptive comment中填上备注就好。当然备注不是必须的,但是填了能帮助你记忆这条记录到底是干什么用的。填写完毕,点击Add,就会把记录添加到下面的列表中。如下图:

添加好了列表之后,我们必须Enable某条记录使其生效。选择某条记录,点击Enable/Disable按钮,或者直接双击该记录就可以开启或关闭了(会通过红色绿色小圆点来表示)。使用时,确保Modify Headers插件出去启动Start的状态(插件logo会变成红色)。要停止使用,直接点击插件界面左上角的Stop按钮,或者点击状态栏上插件logo,选择stop就好了(图标会变成灰色)。就是这样,我们就可以模拟不同的地域访问网站啦~

其他用途

当然Headers的用处并不只是改IP而已。从上面的截图看,我的最后一条是尝试修改User-Agent来模拟用iPhone访问网站。不知道为什么这次尝试失败了。。。不过我还有其他的插件来模拟不同的User-Agent(User Agent Switcher),用来模拟FF3一下版本,iPhone,IE6、7、8等等,来测试网站是否会根据不同的User Agent来显示不同的内容。我们还可以用Modify Headers修改其他的header name来做其他的用途,在维基上找到了这个header的列表:http://en.wikipedia.org/wiki/List_of_HTTP_header_fields,但是好像没有看到true-user-ip在里面。。。非常奇怪。。。其他的功能我不会用,但对模拟不同地域来说,用true-user-ip就已经足够了。

Modify Headers模拟不同地域进行网页测试的更多相关文章

  1. 爬虫、网页测试 及 java servlet 测试框架等介绍

    scrapy 抓取网页并存入 mongodb的完整示例: https://github.com/rmax/scrapy-redis https://github.com/geekan/scrapy-e ...

  2. js/bat批处理调用谷歌浏览器chrome批量打开网页测试web性能

    批处理批量打开网页 其实用java就可以搞定,但是这么一个轻巧的测试,js或者bat批处理去一次性打开几百个网页测试一下页面没必要上java 两者的区别,js的话,只能打开多个浏览器实例,不方便查看效 ...

  3. 使用Firefox user agent进行移动端网页测试

    Selenium 真是个强大的网页测试工具,设置Firefox user agent, 就可以轻松模拟手机端浏览器进行网页测试. Demo Code # -*- coding:utf8 -*- imp ...

  4. Loadrunner模拟JSON接口请求进行测试

    Loadrunner模拟JSON接口请求进行测试     一.loadrunner脚本创建 1.Insert - New step -选择Custom Request -  web_custom_re ...

  5. 使用Post方法模拟登陆爬取网页

    最近弄爬虫,遇到的一个问题就是如何使用post方法模拟登陆爬取网页.下面是极简版的代码: import java.io.BufferedReader; import java.io.InputStre ...

  6. 火狐浏览器安装 Modify Headers 插件

    一.火狐浏览器插件安装 这里以火狐浏览器的Modify Headers插件安装为例,展示火狐插件的安装: 1.打开火狐浏览器,右上角选择“附加组件” 2.搜索Modify Headers插件 3.安装 ...

  7. click 在网页测试手机模式下无效,不能执行。调成非手机模式即可

    click  在网页测试手机模式下无效,不能执行. 调成非手机模式即可

  8. modify headers插件的使用

    Modity headers是firefox浏览器的一个插件,作用是改变http请求的IP地址 (一)在firefox中添加该插件 步骤一:打开firefox浏览器,打开地址: https://add ...

  9. 使用Post方法模拟登陆爬取网页(转)

    使用Post方法模拟登陆爬取网页   最近弄爬虫,遇到的一个问题就是如何使用post方法模拟登陆爬取网页.下面是极简版的代码: import java.io.BufferedReader; impor ...

随机推荐

  1. bzoj 1301 后缀数组

    比较裸的后缀数组. /************************************************************** Problem: User: BLADEVIL La ...

  2. LeetCode 3 :Min Stack

    今天做了一道MinStack的题,深深的感到自己C++还完全没有学好!!! #include <iostream> #include <stack> using std::st ...

  3. 【C语言】一次内存泄露的分析的记录

    今天运行一个程序,程序刚启动时占用内存很小,在运行过程中发现占用的内存会一直增大. 用cat /proc/pid/statm的方式查看发现也确实在一直增大. 而且这个程序移植到另外一个平台后,会直接无 ...

  4. POJ1258 (最小生成树prim)

    Agri-Net Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 46319   Accepted: 19052 Descri ...

  5. [转载]基于Redis的Bloomfilter去重(附Python代码)

    前言: “去重”是日常工作中会经常用到的一项技能,在爬虫领域更是常用,并且规模一般都比较大.去重需要考虑两个点:去重的数据量.去重速度.为了保持较快的去重速度,一般选择在内存中进行去重. 数据量不大时 ...

  6. Spark优化之一:分布式下的map操作是闭包

    例如对一个JavaPairRDD<String, String>做遍历操作,常见的,我们可以通过先通过collect()操作将它转化为Map对象再进行遍历,也可以使用Spark提供的map ...

  7. 回车和换行有什么区别?我们平时按下的Enter键是回车还是换行?

    来源:http://www.52rd.com/blog/Detail_RD.Blog_imjacob_12317.html -------------------------------------- ...

  8. JVM垃圾收集规则和算法

    1.垃圾收集 Garbage Collection 程序计数器.虚拟机栈.本地方法栈这三部分内存随着线程生而生,随着线程灭而自然的回收,他们的大小在编译期间就大致确定了下来,所以对这部分的回收是具备确 ...

  9. Selenium2+python自动化42-判断元素(expected_conditions)【转载】

    前言 经常有小伙伴问,如何判断一个元素是否存在,如何判断alert弹窗出来了,如何判断动态的元素等等一系列的判断,在selenium的expected_conditions模块收集了一系列的场景判断方 ...

  10. Android 判断SD卡是否存在和使用容量查询

    1.判断SD卡是否存在 返回true表示存在 /* 判断SD卡是否存在 返回true表示存在 */ public boolean avaiableMedia() { String status = E ...