3、HTTP接口自动化测试平台搭建
3.1、技术选型
1) 前端和后台逻辑:根据目前所熟悉的框架和语言,选择Python+Django+Bootstrap
2) 存储:使用Mysql存储所有接口数据,分为3块数据(抓取回来所有接口数据、唯一接口数据、参数化接口数据)
3) 接口监控任务调起管理:Jenkins
3.2、接口数据抓取
1) 手工抓取 (模块、标签是为了方便从业务角度管理http接口脚本)
2) 自动批量抓取:测试人员在手机上访问业务,手机通过笔记本商的Fiddler来代理上网,这样Fiddler可以抓取到所有数据,相关设置可以参考Fiddler手机抓包教程http://jingyan.baidu.com/article/03b2f78c7b6bb05ea237aed2.html,抓包并分析出HTTP 接口数据的流程如下:
a、设置Fiddler的Customize Rules…
b、修改Script内容,具体代码和相关描述如下图,注意你需要过滤的主要域名,因为手机上有很多其他的请求也会被抓出来,通过域名过滤可以过滤出来当前域名的请求;
c、在这个脚本中,还可以定义请求中以html、gif、css、js、jpg等等其他和接口无关的请求;
3)把所有有效的接口请求头,请求body,返回头,返回body全部存储到文件里,等待下一步分析;
抓取到的文件数据如下:
3.3、分析接口
1)接口清洗:
a、作用:接口回放,回归测试;
b、过滤掉提取的http session中的js、css、图片等杂质;
c、Post请求:过滤掉经过加密请求(暂不考虑),其他session保留;
d、Get请求:api返回数据都是json类型,根据response中的”Content-Type”字段是否为json判定是否为有效接口;
e、保留返回码为301/302跳转的http session;
2)唯一接口过滤:
a、作用:接口回放,回归测试;
b、过滤掉提取的http session中的js、css、图片等杂质;
c、Post请求:过滤掉经过加密请求(暂不考虑),其他session保留;
d、Get请求:api返回数据都是json类型,根据response中的”Content-Type”字段是否为json判定是否为有效接口;
e、保留返回码为301/302跳转的http session;
3)接口清洗流程
3.4、接口测试
1)对清洗的接口进行测试,测试通过后,接口再做入库处理;
2)接口调用的处理流程: