接口测试

一、前端和后端

前端:客户端,运行在用户端的界面&功能。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语句即可--》添加检查结果

jmeter 关联:方法1:线程--》右键菜单--》后置处理器--jp@gc - JSON Path Extractor,具体参考jmeter关联文档

                     方法2:线程--》右键菜单--》后置处理器--》正则表达式提取器,具体参考jmeter关联文档

jmeter压力机添加:具体实现如下:

                    何时需要添加压力机:并发数要求特别多,自己一台电脑不足以带动时需要添加压力机

                    如何判断需要压力机:查看电脑性能判断自己电脑能否承担足够压力(状态栏--》右键菜单---》启动任务管理器查看电脑性能

                    如何添加压力机:

                    ---》对方电脑(即:用谁的电脑就要把谁电脑)jmeter/bin/jmeter-server.bat启动

                    ---》自己电脑能够ping通对方电脑

                    ---》修改jmeter配置文件:jmeter/bin/jmeter.properties

                           remote_hosts=localhost:1099,10.165.124.57:1099,对方电脑ip:1099

                    ---jmeter关闭重启(配置文件才能生效)

                    ---jmeter菜单栏运行-->远程启动(可看到对方电脑ip/也可远程全部启动(菜单栏两个三角也是远程全部启动)

                    备注:如果有参数化文件,在压力机设备同样目录下也必须有同样文件

linux jmeter的使用:

                    --Linux安装jmeter

                    --windows下保存的jmeter脚本上传至linux(通过命令rz -a上传文件至linux)

                    --jmeter.sh -n -t ***.jmx -l res.jtl 执行***.jmx脚本

                          -n 以没有图形化的界面运行脚本

                          -t

                          res.jtl为输出的结果

 

                   --》结果查看:将linux中的res.jtl拷贝至windows系统中,通过聚合报告中的浏览添加res.jmx文件查看即可(通过命令se 文件名下载文件至windows)

                  目的:1.服务器性能肯定比自己的电脑性能好

                            2.服务器肯定一直开着,下班时间可以在服务器上执行压力

                   备注:BestTest 账号:root密码:123456

                              本地和虚拟机间上下传文件需要借助第三方工具,而非直接在虚拟机直接执行命令,eg:CRT

 

 

六、接口测试用例设计:

 

设计用例时从功能、性能、安全分别设计

 

功能:通过性验证、异常校验、业务逻辑

 

性能:大并发情况

 

安全:密码强弱程度、参数是不是加密

 

自动化:功能稳定后实现自动化

 

 

posted on 2017-09-10 23:43  yezi_396  阅读(136)  评论(0编辑  收藏  举报

导航