2016年10月

Charles是一个HTTP代理服务器、HTTP监视器、反转代理服务器。它可以查看所有连接互联网的HTTP通信。这些包括request, response现HTTP headers (包含cookies与caching信息)。移动端的话,这款工具更加适用于苹果设备,安卓的话有点反应缓慢。

一、下载安装Charles

1、下载地址:

https://www.charlesproxy.com/

2、安装Charles

下载完成后直接进行安装即可,如果不注册每次只能使用30分钟,关于如何注册破解,可以网上下载jar包替换。

 

二、使用Charles

1、打开charles

2、录制pc端

默认打开就开始录制了,直接将Proxy-Windows Proxy勾选,此时在pc端任意链接互联网的http通信都能抓包。

3、录制移动端

本篇文章即主要针对如何对iOS移动设备进行抓包

1)查看本机的IP,win+R,输入cmd,命令输入ipconfig即可查看

或打开Charles的Help-Local IP Address

2)查看Charles的HTTP Proxy的Port,在Proxy-proxy setting中,如下图所示

3)手机端连接无线网(与pc连接同一网段),在无线网详情中选择HTTP代理-手动模式,如下图所示

输入服务器ip,即你步骤1当中查询的本机ip;

输入端口,即你步骤2中查询的端口号;

填写完成之后点击返回即可

4)确保Charles录制按钮已经打开,即红色圆点的按钮

5)在手机端进行操作,charles即可进行抓包

 

最基本抓包功能就这样了,还是很简单的,关于其他的分析以及扩展使用,可以在其他文章中查看。

之所以写这篇文章,主要是大部分测试还是处于弱势地位,线上一旦出问题,大部分人想到的是:你这个没测?基于这点,这篇文章也许可以给你一个明确的答案,这到底是谁的责任。

一、先解决问题

线上爆发重大bug,这时候不是追究责任的时候,而是动员所有可调用的资源,尽快解决这一问题,将损失降到最低。而一般公司在这之前就应该制定好出现重大问题的补救流程和方案以及对应的人员分配。

二、定义bug的性质

解决问题后,定义线上发生的问题的性质,是第三方引起的,不可抗拒的问题,还是自身疏忽导致的错误?且爆发的问题的严重程度,关于bug严重程度的区分,可以参看我的另一篇文章。(传送门:http://blog.jianjiexuan.com/testdocument/42.html

三、分析产生bug的根源

1、需求未涉及,或需求当初定义的不够详细造成。

 这个一般由需求、设计、测试都承担责任,需求的责任最重。之所以说设计和测试也有连带责任,是因为需求评审的时候也参与进去了,而需求都是通过大家一致确认可行通过才执行的。当然,有些公司对于需求评审也不是很重视,也没有专门写需求文档的人,甚至一些小公司直接都是口头表达,这样的需求连记录都没有,实在没办法追责。不过,一般这样的公司也不会追责,如果追责的话,建议设计(产品)、测试一句:你可以刷新简历了。

2、设计过程、开发过程未实现造成。

 这种问题是需求检查到了有未完成的需求,但是设计和开发并没有进行弥补。则为设计与开发的责任,而设计的责任最大。

3、测试过程中的疏漏造成。

 测试过程中的疏漏有2种情况,一种是测试用例没有覆盖,一种是测试用例覆盖了没有执行。第一种参与过测试用例评审的都有责任,但是设计测试用例的人承担最大责任。第二种则完全是测试责任。当然,很多公司根本就不具备评审测试用例或者有专门写测试用例的人,本来管理流程就乱,一人做多种职位的事情,这时候如果硬要追责,建议测试一句:你可以刷新简历了。

4、交付部署中出现问题造成。

 比如版本错误、发布错误、部署错误,一般在设计(产品)、配置、测试经理共同承担责任。

5、私自改动代码造成。

 只能开发哥哥完全承担了。

四、分析总结

 对于这次的事件进行分析与总结,确定是谁的问题后,应该吸取教训,并给出措施,给下次的版本一个参考。

 

其实这套方案肯定是基于自身的流程和管理都非常明确的公司执行。并不适合小团队去执行,小团队建议还是大家一起承担,否则,只会让员工提前离开。如果你不是领导者,愿你不需要看到这篇文章。