比较好的做淘客网站,wordpress cx udy,西安地产网站制作公司,软件开发工具包英文接口测试简介
1.什么是接口
接口就是内部模块对模块#xff0c;外部系统对其他服务提供的一种可调用或者连接的能力的标准#xff0c;就好比usb接口#xff0c;他是系统向外接提供的一种用于物理数据传输的一个接口#xff0c;当然仅仅是一个接口是不能进行传输的#x…接口测试简介
1.什么是接口
接口就是内部模块对模块外部系统对其他服务提供的一种可调用或者连接的能力的标准就好比usb接口他是系统向外接提供的一种用于物理数据传输的一个接口当然仅仅是一个接口是不能进行传输的我们还的对这个接口怎么进行传输进行进行一些设置和定义。开发所谓的接口是模块模块之间的一种连接而测试眼中的接口是一种协议对接口的功能的一种定义
2.接口的种类和分类
外部接口内部接口上层服务于下层服务同级服务。常见的接口分类httpgetpostdeleteput
系统对外的接口比如你要从别的网站或服务器上获取资源或信息别人肯定不会把数据库共享给你他只能给你提供一个他们写好的方法来获取数据你引用他提供的接口就能使用他写好的方法从而达到数据共享的目的。
程序内部的接口方法与方法之间模块与模块之间的交互程序内部抛出的接口比如bbs系统有登录模块、发帖模块等等那你要发帖就必须先登录那么这两个模块就得有交互它就会抛出一个接口供内部系统进行调用。
接口的分类
1.webservice接口2.http api接口
webService接口是走soap协议通过http传输请求报文和返回报文都是xml格式的我们在测试的时候都用通过工具才能进行调用测试。
http api接口是走http协议通过路径来区分调用的方法请求报文都是key-value形式的返回报文一般都是json串有get和post等方法这也是最常用的两种请求方式。
json是一种通用的数据类型所有的语言都认识它。json的本质是字符串他与其他语言无关只是可以经过稍稍加工可以转换成其他语言的数据类型比如可以转换成Python中的字典key-value的形式可以转换成JavaScript中的原生对象可以转换成java中的类对象等。
在这我准备了一份软件测试视频教程含接口、自动化、性能等需要的可以直接在下方观看或者直接关注VX公众号互联网杂货铺这份测试文档资料也打包在里面啦免费领取
软件测试视频教程观看处 京东内部员工自动化测试培训课程盲目自学真的会毁终生27天学完能救一个是一个... 3.各个接口之间的区别
通常我们测试的接口分为get接口和post接口get的提交方式是明文提交把提交的参数跟在url后面发送给服务器所以不安全而且get提交的参数是有字符限制的且可以被当做书签保存但是post的提交方式跟get完全不一样post提交的参数是放在表单里的所以不会存在字符限制而且因为参数是放在表单里不容易被看到所以会比get更安全。
4.什么是接口测试
简单的来说接口测试对于测试来说其实是对接口协议的一种测试这个协议指的是为了让这个接口实现某种需要的功能还设计的一种要求。
5.为什么要进行接口测试
因为不同端前段后端的工作进度不一样所以我们要针对最开始出来的接口以及需要调用其他公司的银行支付宝微信qq等一些接口进行接口测试及验证数据从安全层面来说只依赖前端进行限制已经完全不能满足系统的安全要求绕过前面实在太容易需要后端同样进行控制在这种情况下就需要从接口层面进行验证。前后端传输、日志打印等信息是否加密传输也是需要验证的特别是涉及到用户的隐私信息如身份证银行卡等。
6.接口测试流程
需求讨论需求评审场景设计编写用列准备数据执行测试
7.怎么进行接口测试
通过工具模拟客户端向服务端发送请求并接受服务器返回的数据来对接口的功能逻辑业务异常安全进行测试
功能测试测试这个接口的功能是否实现并且测试这个接口是否按照接口文档来进行开发的比如说接口文档规定了一些关键字而开大的时候把关键字改成了其他的关键字因为在整个项目周期并不只有一个开发而是有多个所以可能因为在开发过程中因为关键字不一样导致某些开发的功能异常还有自动化脚本也会发生异常
逻辑业务主要指的是一些逻辑业务依赖关系比如支付宝提交订单的时候要保证你是在登录的情况下如果你没有登录而提交成功了这就是异常可以修改请求的cookie来测试
异常测试参数异常关键字参数应用其他的关键字替换进行测试、参数为空、参数多少通过添加参数增添个数参数错误。数据异常关键字数据填入的数据用其他的数据语言的数据替用、数据长度、数据为空、数据错误。 由于我们项目前后端调用主要是基于http协议的接口所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如postman、jmeter、soupUI、javahttpclient、robotframeworkhttplibrary等。
也可以用接口自动化来实现就是用代码实现框架和UI自动化差不多发送请求用断言来判断。
8.接口测试需要用到的工具
接口测试常用的工具fiddler抓取请求postman模拟客户端通过对fiddler抓取的请求修改并发送到服务端并接收服务器返回的数据及异常来进行验证接口。工具不是固定的需要根据项目来进行选择。
9.接口的本质及其原理
接口你可以简单的理解他就是URL工作原理就会说URL通过get或者post请求像服务器发送一些东西然后得到一些相应的返回值本质就是数据的传输与接收。
接口测试用例设计思路
目的测试接口的正确性和稳定性 原理模拟客户端向服务器发送请求报文服务器接收请求报文后对相应的报文做处理并向客户端返回应答客户端接收应答的过程 重点检查数据的交换传递和控制管理过程还包括处理的次数 核心持续集成是接口测试的核心 优点为高复杂性的平台带来高效的缺陷监测和质量监督能力平台越复杂系统越庞大接口测试的效果越明显提高测试效率提升用户体验降低研发成本 用例设计重点通常情况下主要测试最外层的两类接口:数据进入系统接口调用外部系统的参数为本系统使用和数据流出系统接口验证系统处理后的数据是否正常
PS设计用例时还需要注意外部接口提供给使用这些接口的外部用户什么功能外部用户真正需要什么功能
1、输入
输入参数主要从以下几各方面设计
a、必填项校验
接口文档中有是否必填的说明。参考接口文档即可。
b、参数长度校验
参考接口文档即可。
c、参数值的有效性校验
如身份证号的校验 设计的数据虽然符合身份证号的规则但是并不是真实有效的身份证号这种情况就要看身份证号的校验规则是什么样了一般都是用的现成的身份证号校验器但是有些是自己写的校验算法这个本人就遇到过这种问题—校验算法写的不正确
所以参数有效性的校验就需要结合实际业务场景判断哪些数据是真实有效的数据一定要确保所有真实有效的数据是可以验证通过的。
d、参数组合校验
不同的参数组合可能会存在不同的业务场景
e、如果参数是枚举值一定要各种枚举值都要测试因为可能不同的枚举走的不同的业务流程
f、参数值的默认值的校验
参考接口文档。
g、某些参数具有特定的生成规则要单独针对生成规则设计用例一定要保证真实有效的数据是可以验证通过的。
如身份证号中间几位 ***19860701*本人就遇到过输入***19861001*这种值校验不正确
2、接口逻辑
接口逻辑我用的设计方法是分支覆盖—路径覆盖—场景覆盖,同样也是要结合实际业务场景根本不发生的业务场景就是无效的测试用例。
a、第一步先把业务流程图画出来
b、依据路程图中的分支分别设计不同分支不同的场景这里就要把异常的场景考虑进去如接口超时接口异常接口请求成功或失败成功后怎么处理失败后流程是否继续执行失败后的数据怎么处理
以打款接口为例
打款结果有打款成功或打款失败成功后怎么处理需要回写打款成功状态失败后怎么处理也需要回写失败状态失败后的数据可以操作退回也可以操作重新出款等等
c、测试逻辑设计完成后要想一想不同的业务场景怎么去测试需要哪些人员协助
如接口超时怎么去测试请求重复怎么去测试请求并发怎么去测试
3、输出
输入结果正常输出和异常输出常用的方法有错误推断法列举出程序中可能存在的错误或者异常根据他们选择测试用例
4、以上都完成后要结合实际的业务场景去掉冗余的用例即实际业务场景不存在的流程或者输入数据
5、如果业务流程涉及到状态转换要单独设计用户—方法状态转换图
6、涉及到多个不同金额或者手续费的计算可能还会用到正交实验法去设计用例
7、另外用例设计中还应当包含异常流程中产生的异常数据的处理流程—通常所说的补偿机制这块流程能大大的减轻人工运营的工作量当然这需要在做系统设计的时候就需要把这部分考虑进去。
接口测试和app测试的相同和区别
1.两者区别App端性能主要关注与手机相关的特性如手机cpu、内存、流量、fps等。而接口性能主要关注接口响应时间、并发、服务端资源的使用情况等。两种测试时的策略和方法都有很大区别所以这部分内容是需要分开单独进行测试的理论上来说这也是不同的部分。
2.接口测试持续集成
对接口测试而言持续集成自动化是核心内容通过持自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化主要应用于回归阶段后续还需要加强自动化的程度包括但不限于下面的内容
a) 流程方面在回归阶段加强接口异常场景的覆盖度并逐步向系统测试冒烟测试阶段延伸最终达到全流程自动化。 b) 结果展示更加丰富的结果展示、趋势分析质量统计和分析等 c) 问题定位报错信息、日志更精准方便问题复现与定位。 d) 结果校验加强自动化校验能力如数据库信息校验。 e) 代码覆盖率不断尝试由目前的黑盒向白盒下探提高代码覆盖率。 f性能需求完善性能测试体系通过自动化的手段监控接口性能指标是否正常。
最后ps接口测试需要掌握的知识。
①了解系统及内部各个组件之间的业务逻辑交互 ②了解接口的I/Oinput/output输入输出 ③了解协议的基本内容包括通信原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等 ④常用的接口测试工具比如jmeter、loadrunner、postman、soapUI等 ⑤数据库基础操作命令检查数据入库、提取测试数据等 ⑥常见的字符类型比如char、varchar、text、int、float、datatime、string等
如何学这些技能
①系统间业务交互逻辑通过需求文档、流程图、思维导图、沟通等很多渠道和方式
②协议推荐《图解http》这本书内容生动相对算是入门级的书籍其他的还有《图解tcp、IP》等
③接口测试工具百度这些工具然后你会发现好多的教学博客、相关问题解决方案、以及一些基于工具的书籍当然选择合适的书很重要
④数据库操作命令学习网站W3C、菜鸟教程、教学博客以及一些数据库相关书籍入门级推荐《mysql必知必会》、《oracle PL/SQL必知必会》等
⑤字符类型还是百度有句话这么说内事不决问百度外事不决问Google。。。
如何获取接口相关信息
一般的企业都会由开发或者对应的技术负责人员编写接口文档里面会注明接口相关的地址、参数类型、方法、输入、输出等信息如果没有想办法获取。。。
接口文档八要素
封面封面最好是本公司规定的封面有logo内容标题版本号公司名称文档产生日期
修订历史表格形式较好些包括版本、修订说明、修订日期、修订人、审核时间审核人等
接口信息接口调用方式常用的GET/POST方式接口地址
功能描述简洁清晰的描述接口功能比如接口获取的信息不包括哪些
接口参数说明每个参数都要和实际中调用的一样包括大小写参数的含义言简意赅的说明格式是string 还是int 还是long等格式
说明部分说明参数值是需要哪里提供并详细说明参数怎么生成的例如时间戳是哪个时间段的参数是否必填一些参数是必须要有的有些是可选参数等
返回值说明
①最好有一个模板返回值并说明每个返回参数的意义
②提供一个真实的调用接口真实的返回值
调用限制安全方面
加密方式或者自己公司一个特殊的加密过程只要双方采用一致的加密算法就可以调用接口保证了接口调用的安全性比如常见的md5
文档维护文档在维护的时候如有修改一定要写上修改日期修改人对大的修改要有版本号变更
其他相关知识
get请求post请求的区别
1、GET使用URL或Cookie传参。而POST将数据放在BODY中。 2、GET的URL会有长度上的限制则POST的数据则可以非常大。 3、POST比GET安全因为数据在地址栏上不可见。 4、一般get请求用来获取数据post请求用来发送数据。
其实上面这几点只有最后一点说的是比较靠谱的第一点post请求也可以把数据放到url里面get请求其实也没长度限制post请求看起来参数是隐式的稍微安全那么一些些但是那只是对于小白用户来说的就算post请求你通过抓包也是可以抓到参数的。唯一区别就是这一点上面3点区别都是不准确的
http状态码
1、200 2开头的都表示这个请求发送成功最常见的就是200就代表这个请求是ok的服务器也返回了。
2、300 3开头的代表重定向最常见的是302把这个请求重定向到别的地方了。
3、400 400代表客户端发送的请求有语法错误401代表访问的页面没有授权403表示没有权限访问这个页面404代表没有这个页面。
4、500 5开头的代表服务器有异常500代表服务器内部异常504代表服务器端超时没返回结果。
webservice接口怎么测试
它不需要你在拼报文了会给一个webservice的地址或者wsdl文件直接在soapui导入就可以看到这个webservice里面的所有接口也有报文直接填入参数调用看返回结果就可以了。
天气预报wsdl地址http://www.webservicex.net/globalweather.asmx?wsdl
cookie与session的区别
1、cookie数据存放在客户的浏览器上session数据放在服务器上。
2、cookie不是很安全别人可以分析存放在本地的cookie并进行cookie欺骗考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多会比较占用你服务器的性能考虑到减轻服务器性能方面应当使用cookie。
4、单个cookie保存的数据不能超过4K很多浏览器都限制一个站点最多保存20个cookie。
5、所以个人建议
将登陆信息等重要信息存放为session其他信息如果需要保留可以放在cookie中
写在最后
PS这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源博主也收集不少进阶自动化的资源从理论到实战知行合一才能真正的掌握。全套内容已经打包到网盘内容总量接近500个G。如需要软件测试学习资料关注公众号互联网杂货铺后台回复1整理不易给个关注点个赞吧谢谢各位大佬 这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。