网站后台购买,网上政务服务平台入口,网站推广的方式?,东昌府网站建设公司#x1f345; 点击文末小卡片#xff0c;免费获取软件测试全套资料#xff0c;资料在手#xff0c;涨薪更快 首先#xff0c;什么是接口呢#xff1f;
接口一般来说有两种#xff0c;一种是程序内部的接口#xff0c;一种是系统对外的接口。
系统对外的接口#xff… 点击文末小卡片免费获取软件测试全套资料资料在手涨薪更快 首先什么是接口呢
接口一般来说有两种一种是程序内部的接口一种是系统对外的接口。
系统对外的接口比如你要从别的网站或服务器上获取资源或信息别人肯定不会把数据库共享给你他只能给你提供一个他们写好的方法来获取数据你引用他提供的接口就能使用他写好的方法从而达到数据共享的目的比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。
程序内部的接口方法与方法之间模块与模块之间的交互程序内部抛出的接口比如bbs系统有登录模块、发帖模块等等那你要发帖就必须先登录要发帖就得登录那么这两个模块就得有交互它就会抛出一个接口供内部系统进行调用。
一、常见接口
1、webService接口是走soap协议通过http传输请求报文和返回报文都是xml格式的我们在测试的时候都用通过工具才能进行调用测试。可以使用的工具有SoapUI、jmeter、loadrunner等
2、http api接口是走http协议通过路径来区分调用的方法请求报文都是key-value形式的返回报文一般都是json串有get和post等方法这也是最常用的两种请求方式。可以使用的工具有postman、RESTClient、jmeter、loadrunner等
二、前端和后端
在说接口测试之前我们先来搞清楚这两个概念前端和后端。
前端是什么呢对于web端来说咱们使用的网页打开的网站这都是前端这些都是html、css写的对于app端来说呢它就是咱们用的appandroid或者object-C开发ios上的app开发的它的作用就是显示页面让我们看到漂亮的页面以及做一些简单的校验比如说非空校验咱们在页面上操作的时候这些业务逻辑、功能比如说你购物发微博这些功能是由后端来实现的后端去控制你购物的时候扣你的余额发微博发到哪个账号下面那前端和后端是怎么交互的呢就是通过接口。
前面说的你可能不好理解你只需记住前端负责貌美如花后端负责挣钱养家。
三、什么是接口测试
其实我觉得接口测试很简单比一般的功能测试还简单这话我先这样说以后可能会删O(∩_∩)O哈现在找工作好多公司都要求有接口测试经验也有好多人问我也就两三个人什么是接口测试本着不懂也要装懂的态度我会说所谓接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。
我为啥说接口测试比功能测试简单呢因为功能测试是从页面输入值然后通过点击按钮或链接等传值给后端而且功能测试还要测UI、前端交互等功能但接口测试没有页面它是通过接口规范文档上的调用地址、请求参数拼接报文然后发送请求检查返回结果所以它只需测入参和出参就行了相对来说简单了不少。
四、接口组成
接口都有那些部分组成呢
首先接口文档应该包含以下内容
1、接口说明 2、调用url 3、请求方法get\post 4、请求参数、参数类型、请求参数说明 5、返回参数说明
由接口文档可知接口至少应有请求地址、请求方法、请求参数入参和出参组成部分接口有请求头header。
标头 (header)是服务器以HTTP协议传HTML资料到浏览器前所送出的字串在标头与 HTML 文件之间尚需空一行分隔一般存放cookie、token等信息
有同学问我header和入参有什么关系它们不都是发送到服务器的参数吗
OK首先它们确实都是发送到服务器里的参数但它们是有区别的header里存放的参数一般存放的是一些校验信息比如cookie它是为了校验这个请求是否有权限请求服务器如果有它才能请求服务器然后把请求地址连同入参一起发送到服务器然后服务器会根据地址和入参来返回出参。也就是说服务器是先接受header信息进行判断该请求是否有权限请求判断有权限后才会接受请求地址和入参的。
五、为什么要做接口测试
大家都知道接口其实就是前端页面或APP等调用与后端做交互用的所以好多人都会问我功能测试都测好了为什么还要测接口呢OK在回答这个问题之前先举个栗子
比如测试用户注册功能规定用户名为6~18个字符包含字母区分大小写、数字、下划线。首先功能测试时肯定会对用户名规则进行测试时比如输入20个字符、输入特殊字符等但这些可能只是在前端做了校验后端可能没做校验如果有人通过抓包绕过前端校验直接发送到后端怎么办呢试想一下如果用户名和密码未在后端做校验而有人又绕过前端校验的话那用户名和密码不就可以随便输了吗如果是登录可能会通过SQL注入等手段来随意登录甚至可以获取管理员权限那这样不是很恐怖
所以接口测试的必要性就体现出来了
①可以发现很多在页面上操作发现不了的bug
②检查系统的异常处理能力
③检查系统的安全性、稳定性
④前端随便变接口测好了后端不用变
六、接口测试怎么测
在进行接口测试前还需要了解
1、GET和POST请求
如果是get请求的话直接在浏览器里输入就行了只要在浏览器里面直接能请求到的都是get请求如果是post的请求的话就不行了就得借助工具来发送。 GET请求和POST请求的区别 1、GET使用URL或Cookie传参。而POST将数据放在BODY中。 2、GET的URL会有长度上的限制则POST的数据则可以非常大。 3、POST比GET安全因为数据在地址栏上不可见。 4、一般get请求用来获取数据post请求用来发送数据。
其实上面这几点只有最后一点说的是比较靠谱的第一点post请求也可以把数据放到url里面get请求其实也没长度限制post请求看起来参数是隐式的稍微安全那么一些些但是那只是对于小白用户来说的就算post请求你通过抓包也是可以抓到参数的。所以上面这些面试的时候你说出来就行了。
2http状态码
每发出一个http请求之后都会有一个响应http本身会有一个状态码来标示这个请求是否成功常见的状态码有以下几种 1、200 2开头的都表示这个请求发送成功最常见的就是200就代表这个请求是ok的服务器也返回了。 2、300 3开头的代表重定向最常见的是302把这个请求重定向到别的地方了 3、400 400代表客户端发送的请求有语法错误401代表访问的页面没有授权403表示没有权限访问这个页面404代表没有这个页面 4、500 5开头的代表服务器有异常500代表服务器内部异常504代表服务器端超时没返回结果
接下来再说接口测试怎么测
1通用接口用例设计
①通过性验证首先肯定要保证这个接口功能是好使的也就是正常的通过性测试按照接口文档上的参数正常传入是否可以返回正确的结果。
②参数组合现在有一个操作商品的接口有个字段type传1的时候代表修改商品商品id、商品名称、价格有一个是必传的type传2的时候是删除商品商品id 是必传的这样的就要测参数组合了type传1的时候只传商品名称能不能修改成功id、名称、价格都传的时候能不能修改成功。
③接口安全 1、绕过验证比如说购买了一个商品它的价格是300元那我在提交订单时候我把这个商品的价格改成3元后端有没有做验证更狠点我把钱改成-3是不是我的余额还要增加 2、绕过身份授权比如说修改商品信息接口那必须得是卖家才能修改那我传一个普通用户能不能修改成功我传一个其他的卖家能不能修改成功 3、参数是否加密比如说我登陆的接口用户名和密码是不是加密如果不加密的话别人拦截到你的请求就能获取到你的信息了加密规则是否容易破解。 4、密码安全规则密码的复杂程度校验
④异常验证
所谓异常验证也就是我不按照你接口文档上的要求输入参数来验证接口对异常情况的校验。比如说必填的参数不填输入整数类型的传入字符串类型长度是10的传11总之就是你说怎么来我就不怎么来其实也就这三种必传非必传、参数类型、入参长度。
2根据业务逻辑来设计用例
根据业务逻辑来设计的话就是根据自己系统的业务来设计用例这个每个公司的业务不一样就得具体的看自己公司的业务了其实这也和功能测试设计用例是一样的。
举个例子拿bbs来说bbs的需求是这样的 1、登录失败5次就需要等待15分钟之后再登录 2、新注册的用户需要过了实习期才能发帖 3、删除帖子扣除积分 4、...... 像这样的你就要把这些测试点列出来然后再去造数据测试对应的测试点。
七、用什么工具测
接口测试的工具很多比如 postman、RESTClient、jmeter、loadrunner、SoapUI等本人首推的测试工具是postman和jmeter接下来就简单介绍下如何使用这两款工具进行接口测试其他工具本次暂不介绍。
1、Postman是谷歌的一款接口测试插件它使用简单支持用例管理支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能可以批量运行并支持用例导出、导入。
jmeter是一款100%纯Java编写的免费开源的工具它主要用来做性能测试相比loadrunner来说它内存占用小免费开源轻巧方便、无需安装越来越被大众所喜爱。
注以下用例中所用地址皆为本人在本地所搭的环境外网无法访问见谅。
①获取用户信息该接口用于通过userid获取用户信息 请求地址http://192.168.1.102:8081/getuser 请求方式POST/GET
入参 出参 postman中请求如下 jmeter中请求如下 ②获取用户信息需要添加headerContent-Type application/json
1.1 请求地址
http://192.168.1.102:8081/getuser2
1.2 请求方式
get/post
1.3 入参 1.4 出参 postman测试如下本次入参为json类型当然文档中没说非要用json用其他方式也是可以的 jmeter测试如下 ③修改用户余额2
1.1 功能描述
功能描述需要添加cookietoken token是写死的token12345
1.2 请求地址
http://192.168.1.102:8081/setmoney2
1.3 请求方式
Post
1.4 入参 1.5 出参 postman测试如下 jmeter测试如下 ④文件上传
postman jmeter ⑤请求webService接口
请求webService接口需要用到的工具是SoapUI如下图 在jmeter里请求如下 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。