浅谈接口测试

前言:没有接触接口测试之前,可能会对做接口测试感到无所适从。看再多的文档,不如动手实践来得快啦。当然,目前接触到的只是接口测试的皮毛,会不断学习改进的。

一、基础知识

主要是http相关的知识,看了很多次老是忘,多多巩固下。

1.HTTP和HTTPS的区别

HTTP:超文本传输协议
HTTPS:安全套接字层超文本传输协议
HTTP协议以明文的方式发送内容,不提供任何方式的数据加密。如果攻击者截获了服务器和浏览器之间的传输报文,就可以直接读懂其中的信息。为了数据传输的安全,避免支付密码之类的敏感信息泄露,HTTPS协议应运而生。
HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。简单讲,HTTPS是HTTP的安全版。

详细讲解指路:https://www.cnblogs.com/wqhwe/p/5407468.html

2.常见的http响应状态码
http响应状态码.png

二、接口测试

1.简介

接口测试是测试系统组件间接口的一种测试。主要用于检测外部系统与被测系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

接口测试的类型有:
(1)API测试(前端数据与服务器之间的交互)
(2)数据库测试(服务器与数据库之间的交互)

2.测试点
接口测试-初级版

ps:有同事对接口测试这一块研究更加深入,测试点很全,因为不是自己的东西,就没有放出来~~只列出自己觉得必不可少的且现阶段能够做到的。

三、工具

1.fiddler

fiddler是一个很美妙很实用的接口测试工具,谁用谁知道。使用详解和相关tips网上有很多教程啦,不多废话。这里就主要总结自己觉得比较有用的内容。

(1)模拟http请求

设置断点修改request,两种操作手段:
1.打开fiddler,点击Rules->Automatic Breakpoint->Before Requests(这种方法会中断所有的会话,全局断点)
取消断点:点击Rules->Automatic Breakpoint->Disabled
2.在命令行中输入命令:bpu www.baidu.com(这种方法只会中断www.baidu.com),bpu是打断点的意思。
注意:这里的url不用手动输入,可以直接选中左侧的http请求,右键->copy->just url,复制url 到剪贴板,或者使用快捷键 Ctrl + U
取消断点:在命令行中输入bpu
设置断点后,修改请求的参数->run to completion。

(2)模拟http响应

方法一:
1.打开Fiddler右侧找到AutoResponse
2.选择Enable rules 和Unmatched requests passthrough,意为匹配所设置的规则并且自动跳过不满足匹配的请求;Enable Latency可以设置延时
3.点击选中左侧的http请求,然后点击Add Rule
4.在下面的Rule Editor 中下拉选择要模拟的响应类型,比如200、404、502等;也可以自己创建返回给客户端的响应,选中Create New Response…,如果是要替换掉某些页面文件,选择Find a file,最后点击Save 保存下
5.这样子当客户端再次请求接口时收到的就是我们设置的响应了

方法二:
设置断点修改Response,同样两种操作手段:
1.打开Fiddler点击Rules->Automatic Breakpoint->After Response(这种方法会中断所有的会话,全局断点);
取消断点:点击Rules->Automatic Breakpoint ->Disabled
2.在命令行中输入命令:bpafter www.baidu.com(这种方法会中断www.baidu.com);
取消断点:命令行中输入命令bpafter
设置断点后,点击右侧break on response->修改想修改的响应参数->run to completion。

(3)显示对应域名的服务器ip地址

使用快捷键Ctrl+R ,或者点击Rules->Customize Rules,打开 Customize Rules.js文件, 查找static function Main() 这个函数,在FiddlerObject.StatusText = " CustomRules.js was loaded at: " + today; 这行下面新增一行:
FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");
保存后重启 Fiddler ,则抓包时可以看到server ip一栏。

(4)查看请求的响应时间

在列表的标题栏上右键点击customize colums,然后选择session timers 里面有个overall_elapsed,则抓包时可以看到请求响应时间的列。
ps:还有另外一种设置方法,需要添加代码,比较麻烦,就不多做赘述。

(5)模拟网络请求超时

1.使用快捷键Ctrl+R ,或者点击Rules->Customize Rules,打开 Customize Rules.js文件, 查找 “oSession["response-trickle-delay"]”
2.默认值是150;把它的值设为10000,这样就一定能够引起超时了,保存文件
3.勾选Rules -> Performance -> Simulate Modem Speeds
4.命令行中输入 bpafter url,直接阻塞对应url的返回即可

2.postman

因为平时工作用的是fiddler,postman只能说是接触过但没有深入使用。所以就简单介绍一下。

(1)什么是postman

postman是一款可以用来调试网页与发送网页http请求,并且用来运行测试用例的chrome插件。

(2)优点

1.支持用例的管理,包括用例的导入、导出。
2.支持批量运行。
3.支持云端保存用例(付费用户的特权)。
4.支持各种请求方法,包括get、post、put、delete等。postman的request body编辑器会自动根据你所选择的请求方法做出改变,很是方便。
5.此外,postman还支持文件上传、响应验证、变量管理、环境参数管理等功能。

(3)实践部分用到了再做补充

四、经验总结

1.刚开始做接口测试时,可以设计相应的接口测试用例,相关的测试点尽量考虑全面,测试时一条条地过用例,会极大地加深对接口测试的理解和熟练度。

2.如果接口对错误处理不恰当,导致用户看到的错误信息不够明确,或者直接出现晦涩的错误码,可以对开发人员提出建议。否则用户不知道到底哪里出现了问题,如何解决等。

3.要多关注接口请求的次数,是否会出现重复请求,少请求,多请求,不应请求的情况;以及是否会出现请求已经废弃了的接口的情况。

4.测试过程中,修改后台接口中一些耦合性较强的数据时容易引发其他问题,因此不能滥用工具随意更改接口数据,而是应该更多地去模拟用户在使用过程中可能会遇到的问题。

5.对于接口测试的异常场景测试,开发人员可能会觉得,前端/客户端已经做限制了呀,正常的用户不会像你这么做的,我再做就等于重复工作了;或者这种情况几乎不可能发生之类的。身为测试人员,提出问题是职责所在,系统的安全问题也是我们必须考虑的。问题还没发生不代表永远不会发生。开发人员要做的是权衡利弊,在性能和安全性之间取一个平衡点。

6.有人认为,同样的功能,后台接口测试一遍,前端又再测一遍,没有必要。实际上,接口测试关注于服务器业务逻辑,而前端侧重于页面展示逻辑及前端与服务器之间的集成验证。

7.关于get请求和post请求:它们是表单提交数据的两种基本方式。get请求数据通过域名后缀url传送,用户可见,不安全;post请求数据通过在请求报文正文里传输,相对比较安全。之前遇到过没有经验的开发小哥哥使用get请求传送敏感数据,测试人员对这方面也可以稍加留意。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351