【接口就是后台中的一个方法/函数】
0 为什么要做接口测试
0.1 比ui测试落地性价比更高,接口比ui更稳定。
0.2 发现bug的时间更早,后台对应模块开发完成就可以展开测试
0.3 分模块进行接口测试。定位bug的效率更高,更容易
1 URL的格式(统一资源定位符)
scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]
scheme:传送协议,一般为http
层级URL标记符号(为[//],固定不变)
user[:password]@ 访问资源需要的凭证信息(可省略)
host:服务器。(通常为域名,有时为IP地址)
port:端口号。(以数字方式表示,若为HTTP的默认值“:80”可省略)
path 路径。(以“/”字符区别路径中的每一个目录名称)
?之后表示参数(GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题),参数也可能没有
片段。以“#”字符为起点(不知道有什么用)
【---------------------
作者:夏莅庄
来源:CSDN
原文:https://blog.csdn.net/qq_36004598/article/details/78965334
版权声明:本文为博主原创文章,转载请附上博文链接!】
2 访问服务器端的过程:开发使用MVC框架,将URL的路径和后台中的某个函数建立起映射关系。前端向服务器发送接口请求(URL),服务器通过映射关系找到对应的方法,将参数A传入入到该方法中(如果没有参数省略这里),然后得到一个返回值B,将B返回给前端。
2.1 服务器端只有和路径建立了映射关系的方法才能直接通过URL进行访问,其他的方法不能被外部访问,所以可以对方法进行分类,对应就有2种接口,外部和内部接口。建立了映射关系的就是外部接口,其余的就是内部接口。
3 外部接口测试和UI测试的区别
3.1 UI测试专注于用户界面,bug来源于页面的反馈
3.2 接口(这里指外部接口),借助客户端工具(Jemeter,Postman,Fidder,Soapui等)模拟前端页面发送接口请求,关注于返回数据是否和预期一致。
4 内部接口怎么测试
单元测试,通过main方法进行测试(针对java开发)
5 接口之间如果存在依赖关系怎么测试
通过该Testng的依赖测试连接接口进行测试。
6 外部接口的分类
6.1 webService接口是走 soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。
6.2 http api接口是走 http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。
【疑问】
1 很多URL中的路径不能作为后台某个方法的映射,那开发是否存在其他的结构来实现路径和后台方法的映射?比如
https://www.jianshu.com/writer#/notebooks/35270496/notes/43365358
https://blog.csdn.net/qq_36004598/article/details/78965334
还有路径以xxx.xml 结尾的URL,这种http请求没有调用接口,直接返回该路径下的xml 资源。
http请求应该分为2类,单纯的文件资源请求和有数据传递的请求。
文件资源一般包括图片(.jpg ) js css 文件
数据传递:传入参数,返回有格式的字符串,比如json xml, 这种
那种路径看起来不像是能确定某个方法的URL,应该是webservice接口对于的URL,webservice接口对应的开发框架也许都不是mvc
2 URL中端口号的意义,
3 接口的返回值共计有多少种?
4 json是什么?
有格式的字符串
是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据
https://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html