接口测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试相关的知识,希望对你有一定的参考价值。
一、前端和后端
前端:客户端,运行在用户端的界面&功能。eg:打开的网站,手机端的app
后端:服务端,其实是对数据库的操作。eg:在页面上操作的时候,这些业务逻辑、功能,比如说你购物,发微博这些功能是由后端来实现的,后端去控制你购物的时候扣你的余额
接口:前端和后端是通过接口做交互。
二、接口概念
g接口:功能分两种,一种是程序内部的接口,一种是系统对外的接口,测试一般测试对外接口;协议分两种,一种是webService接口,一种是http api 接口。
对内接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。
对外接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。
webService接口:走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。
http api接口:走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。
接口测试: 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 ----------------百度百科
接口测试目的:其实一部分的接口测试通过界面的功能测试可以实现,但还有一部分接口测试界面功能是测试不到的,我们需要通过发送报文查看接口反馈信息,以提高产品质量。
接口测试必要性:可以发现很多在页面上操作发现不了的bug ;检查系统的异常处理能力 ;检查系统的安全性、稳定性 ;前端随便变,接口测好了,后端不用变。
接口测试流程:需求评审,熟悉业务和需求 & 开发提供接口文档 --》编写接口测试用例 --》用例评审 --》提测后开始测试 --》提交测试报告。
三、接口文档--》接口用例设计--》接口测试模板
接口文档:一般为开发提供给测试的测试接口依据的文档。
接口文档主要包括: 接口说明 、调用url 、请求方法(get\post) 、请求参数、参数类型、请求参数说明 、返回参数说明
接口用例设计主要包括:通过性验证、参数组合、异常验证【必传非必传、参数类型、入参长度】、安全验证【绕过验证、绕过身份授权(不同身份)、参数是否加密、密码安全规则,密码的复杂程度校验】、根据业务逻辑设计用例。
接口测试用例设计主要包括:项目、模块、用例id 、接口名称 、用例标题 、请求方式、请求url、请求参数、前置条件、结果验证、请求报文、返回报文、测试结果、测试人员
四、http接口--get&post请求
http状态码:
1、200 2开头的都表示这个请求发送成功,最常见的就是200,就代表这个请求是ok的,服务器也返回了。
2、300 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了。
3、400 400代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403表示没有权限访问这个页面,404代表没有这个页面。
4、500 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没返回结果。
get & post请求区别:
1、GET将数据放在URL、header中传参。而POST将数据放在BODY、header中传参。
2、GET的URL会有长度上的限制,则POST的数据则可以非常大。
3、POST比GET安全,因为数据在地址栏上不可见。
4、一般get请求用来获取数据,post请求用来发送数据。 其实上面这几点,只有最后一点说的是比较靠谱的,第一点post请求也可以把数据放到url里面,get请求其实也没长度限制,post请求看起来参数是隐式的,稍微安全那么一些些,但是那只是对于小白用户来说的,就算post请求,你通过抓包也是可以抓到参数的。所以上面这些面试的时候你说出来就行了。
get请求报文发送方法:
1.浏览器网址直接输入【URL+?+参数+&+参数。。。】的方法调用接口查看返回值
2.postman工具选择get请求,通过【URL+?+参数+&+参数。。。(+header中添加头文件)】的方法调用接口查看返回值
3.jmeter工具添加线程,选择不同的sampler及get的http请求方法,然后通过【?+参数】或者【添加参数】传参,再添加查看结果&判断的方法调用接口查看返回值
post请求报文发送方法:
1.postman工具选择post请求,通过【URL+?+参数+&+参数。。。(+header中添加头文件)】的方法调用接口查看返回值
2.postman工具选择post请求,通过【URL+key-value(+header中添加头文件)】的方法调用接口查看返回值
3.postman工具选择post请求,通过【URL+json串(+header中添加头文件)】的方法调用接口查看返回值
4.jmeter工具添加线程,选择不同的sampler及post的http请求方法,然后通过【?+参数】或者【添加参数】传参,再添加查看结果&判断的方法调用接口查看返回值
五、webservice接口
webservice接口怎么测试呢,他不需要你在拼报文了,会给一个webservice的地址,或者wsdl文件,直接在soapui导入,就可以看到这个webservice里面的所有接口,也有报文,直接填入参数调用,看返回结果就可以了。
soapui工具,导入天气预报的wsdl后即可看到其所有接口,根据接口文档修改参数即可。eg:http://www.webservicex.net/globalweather.asmx?wsdl
jmeter工具,添加SOAP/XML-RPC Request(url为http://www.webservicex.net/globalweather.asmx?wsdl;send SOAPAction为soapui工具中的SOAPAction;修改请求报文的参数即可)、结果检查等即可。
六、jmeter
Jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,不像loadrunner那样体积大,是一个比较轻量级的测试工具,使用起来非常的简单,深受测试人员的喜爱,但是它的测试报告没有loadrunner的那么详细,看起来没有那么的直观。因为它是java开发的,所以运行的时候必须要安装jdk才可以,jmeter是免安装的,拿到安装包之后直接解压就可以使用了,它也是跨平台的在linux、windows、macos上都可以使用。
jmeter 头文件的添加:线程--》添加--》配置元件--》HTTP信息头管理器--》填写名称及值即可
jmeter cookie的添加:线程--》添加--》配置元件--》HTTP Cookie管理器--》填写名称、值及域即可
jmeter 用户变量的添加:线程--》添加--》配置元件--》用户定义的变量--》填写变量名及值即可--》应用方法:${变量名}
jmeter 本地文档变量的添加:线程--》添加--》配置元件--》CSV Data set config--》Filename为文档路径;variable name为变量名称;--》引用方法:${variable name}
jmeter 其他变量函数的添加:选项--》函数助手对话框--》根据需求选择对应的功能函数--》根据提示填写生产的表格--》生产--》即可拷贝生成的字符串至需要的地方
jmeter 调用mysql的方法:测试计划中添加调用mysql的jar包--》添加线程--》添加JDBC Connection Configuration【线程--》添加--》配置元件--》JDBC Connection Configuration】--》添加JDBC Request【线程--》添加--》配置元件--》JDBC Request】,填写sql语句即可--》添加检查结果
以上是关于接口测试的主要内容,如果未能解决你的问题,请参考以下文章