乌兰察布做网站公司,车床加工东莞网站建设,如何看网站几级域名,wordpress 用户提交#x1f345; 视频学习#xff1a;文末有免费的配套视频可观看 #x1f345; 关注公众号【互联网杂货铺】#xff0c;回复 1 #xff0c;免费获取软件测试全套资料#xff0c;资料在手#xff0c;涨薪更快 首先#xff0c;什么是接口呢#xff1f;
接口一般来说有两种… 视频学习文末有免费的配套视频可观看 关注公众号【互联网杂货铺】回复 1 免费获取软件测试全套资料资料在手涨薪更快 首先什么是接口呢
接口一般来说有两种一种是程序内部的接口一种是系统对外的接口。
系统对外的接口比如你要从别的网站或服务器上获取资源或信息别人肯定不会把数据库共享给你他只能给你提供一个他们写好的方法来获取数据你引用他提供的接口就能使用他写好的方法从而达到数据共享的目的比如说咱们用的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开发的它的作用就是显示页面让我们看到漂亮的页面以及做一些简单的校验比如说非空校验咱们在页面上操作的时候这些业务逻辑、功能比如说你购物发微博这些功能是由后端来实现的后端去控制你购物的时候扣你的余额发微博发到哪个账号下面那前端和后端是怎么交互的呢就是通过接口。
前面说的你可能不好理解你只需记住前端负责貌美如花后端负责挣钱养家。 从上面这两张图对比可以看出两个测试活动中相同的部分有功能测试、边界分析测试和性能测试其它部分由于各自特性或关注点不同需要进行特殊的测试在此不做讨论。接下来我们针对以上三部分相同的内容再进行分析
1、基本功能测试
由于是针对基本业务功能进行测试所以这部分是两种测试重合度最高的一块开发同学通常所指的也主要是这部分的内容。
2、边界分析测试
在基本功能测试的基础上考虑输入输出的边界条件这部分内容也会有重复的部分比如业务规则的边界。但是前端的输入输出很多时候都是提供固守的值让用户选择如下拉框在这种情况下测试的边界范围就非常有限但接口测试就不存在这方面的限制相对来说接口可以覆盖的范围更广同样的接口出现问题的概率也更高。 3、性能测试
这个比较容易区分虽然都需要做性能测试但关注点确大不相同。App端性能主要关注与手机相关的特性如手机cpu、内存、流量、fps等。而接口性能主要关注接口响应时间、并发、服务端资源的使用情况等。两种测试时的策略和方法都有很大区别所以这部分内容是需要分开单独进行测试的理论上来说这也是不同的部分。
综论
1、接口测试和app测试的活动有部分重复的内容主要集中在业务功能测试方面。除此之外针对各自特性的测试都不一样需要分别进行有针对性的测试才能确保整个产品的质量。
2、接口测试可以关注于服务器逻辑验证而UI测试可以关注于页面展示逻辑及界面前端与服务器集成验证
三、什么是接口测试
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换传递和控制管理过程以及系统间的相互逻辑依赖关系等。
OK上面是百度百科上说的下面才是我说的
其实我觉得接口测试很简单比一般的功能测试还简单这话我先这样说以后可能会删O(∩_∩)O哈有好多人问我也就两三个人什么是接口测试本着不懂也要装懂的态度我会说所谓接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。
我为啥说接口测试比功能测试简单呢因为功能测试是从页面输入值然后通过点击按钮或链接等传值给后端而且功能测试还要测UI、前端交互等功能但接口测试没有页面它是通过接口规范文档上的调用地址、请求参数拼接报文然后发送请求检查返回结果所以它只需测入参和出参就行了相对来说简单了不少。
四、接口组成
接口都有那些部分组成呢
首先接口文档应该包含以下内容
接口说明调用url请求方法get\post请求参数、参数类型、请求参数说明返回参数说明
由接口文档可知接口至少应有请求地址、请求方法、请求参数入参和出参组成部分接口有请求头header。
标头 (header)是服务器以HTTP协议传HTML资料到浏览器前所送出的字串在标头与 HTML 文件之间尚需空一行分隔一般存放cookie、token等信息
有同学问我header和入参有什么关系它们不都是发送到服务器的参数吗
OK首先它们确实都是发送到服务器里的参数但它们是有区别的header里存放的参数一般存放的是一些校验信息比如cookie它是为了校验这个请求是否有权限请求服务器如果有它才能请求服务器
五、为什么要做接口测试
大家都知道接口其实就是前端页面或APP等调用与后端做交互用的所以好多人都会问我功能测试都测好了为什么还要测接口呢OK在回答这个问题之前先举个栗子
比如测试用户注册功能规定用户名为6~18个字符包含字母区分大小写、数字、下划线。首先功能测试时肯定会对用户名规则进行测试时比如输入20个字符、输入特殊字符等但这些可能只是在前端做了校验后端可能没做校验如果有人通过抓包绕过前端校验直接发送到后端怎么办呢试想一下如果用户名和密码未在后端做校验而有人又绕过前端校验的话那用户名和密码不就可以随便输了吗如果是登录可能会通过SQL注入等手段来随意登录甚至可以获取管理员权限那这样不是很恐怖
所以接口测试的必要性就体现出来了
①可以发现很多在页面上操作发现不了的bug
②检查系统的异常处理能力
③检查系统的安全性、稳定性
④前端随便变接口测好了后端不用变
六、接口测试怎么测
在进行接口测试前还需要了解
1GET和POST请求
如果是get请求的话直接在浏览器里输入就行了只要在浏览器里面直接能请求到的都是get请求如果是post的请求的话就不行了就得借助工具来发送。
GET请求和POST请求的区别
GET使用URL或Cookie传参。而POST将数据放在BODY中。GET的URL会有长度上的限制则POST的数据则可以非常大。POST比GET安全因为数据在地址栏上不可见。一般get请求用来获取数据post请求用来发送数据。
其实上面这几点只有最后一点说的是比较靠谱的第一点post请求也可以把数据放到url里面get请求其实也没长度限制post请求看起来参数是隐式的稍微安全那么一些些但是那只是对于小白用户来说的就算post请求你通过抓包也是可以抓到参数的。所以上面这些面试的时候你说出来就行了。
2http状态码
每发出一个http请求之后都会有一个响应http本身会有一个状态码来标示这个请求是否成功常见的状态码有以下几种
200 2开头的都表示这个请求发送成功最常见的就是200就代表这个请求是ok的服务器也返回了。300 3开头的代表重定向最常见的是302把这个请求重定向到别的地方了400 400代表客户端发送的请求有语法错误401代表访问的页面没有授权403表示没有权限访问这个页面404代表没有这个页面500 5开头的代表服务器有异常500代表服务器内部异常504代表服务器端超时没返回结果
接下来再说接口测试怎么测
1通用接口用例设计
①通过性验证首先肯定要保证这个接口功能是好使的也就是正常的通过性测试按照接口文档上的参数正常传入是否可以返回正确的结果。
②参数组合现在有一个操作商品的接口有个字段type传1的时候代表修改商品商品id、商品名称、价格有一个是必传的type传2的时候是删除商品商品id 是必传的这样的就要测参数组合了type传1的时候只传商品名称能不能修改成功id、名称、价格都传的时候能不能修改成功。
③接口安全
绕过验证比如说购买了一个商品它的价格是300元那我在提交订单时候我把这个商品的价格改成3元后端有没有做验证更狠点我把钱改成-3是不是我的余额还要增加绕过身份授权比如说修改商品信息接口那必须得是卖家才能修改那我传一个普通用户能不能修改成功我传一个其他的卖家能不能修改成功参数是否加密比如说我登陆的接口用户名和密码是不是加密如果不加密的话别人拦截到你的请求就能获取到你的信息了加密规则是否容易破解。密码安全规则密码的复杂程度校验
④异常验证
所谓异常验证也就是我不按照你接口文档上的要求输入参数来验证接口对异常情况的校验。比如说必填的参数不填输入整数类型的传入字符串类型长度是10的传11总之就是你说怎么来我就不怎么来其实也就这三种必传非必传、参数类型、入参长度。
2根据业务逻辑来设计用例
根据业务逻辑来设计的话就是根据自己系统的业务来设计用例这个每个公司的业务不一样就得具体的看自己公司的业务了其实这也和功能测试设计用例是一样的。
举个例子拿bbs来说bbs的需求是这样的
1、登录失败5次就需要等待15分钟之后再登录 2、新注册的用户需要过了实习期才能发帖 3、删除帖子扣除积分 4、......
像这样的你就要把这些测试点列出来然后再去造数据测试对应的测试点。
七、用什么工具测
接口测试的工具很多比如 postman、RESTClient、jmeter、loadrunner、SoapUI等本人首推的测试工具是postman和jmeter接下来就简单介绍下如何使用这两款工具进行接口测试其他工具本次暂不介绍。
1Postman是谷歌的一款接口测试插件它使用简单支持用例管理支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能可以批量运行并支持用例导出、导入。
jmeter是一款100%纯Java编写的免费开源的工具它主要用来做性能测试相比loadrunner来说它内存占用小免费开源轻巧方便、无需安装越来越被大众所喜爱。
八、接口测试持续集成
对接口测试而言持续集成自动化是核心内容通过持自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化主要应用于回归阶段后续还需要加强自动化的程度包括但不限于下面的内容
a) 流程方面在回归阶段加强接口异常场景的覆盖度并逐步向系统测试冒烟测试阶段延伸最终达到全流程自动化。
b) 结果展示更加丰富的结果展示、趋势分析质量统计和分析等
c) 问题定位报错信息、日志更精准方便问题复现与定位。
d) 结果校验加强自动化校验能力如数据库信息校验。
e) 代码覆盖率不断尝试由目前的黑盒向白盒下探提高代码覆盖率。
f) 性能需求完善性能测试体系通过自动化的手段监控接口性能指标是否正常。
九、接口测试质量评估标准
a) 业务功能覆盖是否完整
b) 业务规则覆盖是否完整
c) 参数验证是否达到要求边界、业务规则
d) 接口异常场景覆盖是否完整
e) 接口覆盖率是否达到要求
f) 代码覆盖率是否达到要求
g) 性能指标是否满足要求
h) 安全指标是否满足要求
同时在这我为大家准备了一份软件测试视频教程含面试、接口、自动化、性能测试等就在下方需要的可以直接去观看也可以直接【点击文末小卡片免费领取资料文档】 【2024最新版】Python自动化测试15天从入门到精通10个项目实战允许白嫖。。。