java 单机接口限流处理方案
293
2022-10-31
本文目录一览:
接口自动化的相关知识来源于计算机科学领域,属于计算机的硬件方面的知识,需要学习者从“理论”和“实践”两个方面认真学习。
理论部分应掌握与接口自动化有关的概念、定理、定义和专业术语等;实践部分就是具体的实际操作,认识计算机接口,会对接口进行常用的配置操作等。
方法/步骤
1
首先打开计算机接口相关书籍的第一页,从第一页开始认真看书。必须掌握“计算机接口的定义”和“计算机接口的工作原理”。
2
通过精读计算机接口相关教材,掌握计算机接口的定义和工作原理,可以在不看书的情况下详细复述出来它们的精要内容。
3
这两点做到之后就可以上机举起操作了,打开计算机的主机箱,对照我们所学的各种知识进行实践的认识,相信在你认真做好以上三点之后,一定可以很好地学习计算机接口知识
接口自动化工具有以下:
1、QTP。是quicktest Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。
2、WinRunner。是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。
3、AdventNetQEngine。是一个应用广泛且独立于平台的自动化软件测试工具,可用于Web功能测试、web性能测试、Java应用功能测试、Java API测试、SOAP测试、回归测试和Java应用性能测试。
自动化(Automation)是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程。
自动化技术广泛用于工业、农业、军事、科学研究、交通运输、商业、医疗、服务和家庭等方面。采用自动化技术不仅可以把人从繁重的体力劳动、部分脑力劳动以及恶劣、危险的工作环境中解放出来,而且能扩展人的器官功能,极大地提高劳动生产率,增强人类认识世界和改造世界的能力。
接口 :外部系统与本系统之间以及系统内部的各个子系统间,以约定标准提供的服务,包括对外提供的接口/对内提供的接口。
在这块我们举一个比较生活化的例子,我们平常使用的笔记本,在笔记本的两端有很多小插口,最常见的就是USB插口,我们可以把鼠标连接在USB插口上,也可以把键盘、U盘连接在USB插口上,为什么同一个USB接口可以连接这么多设备呢,其实这个接口,他就有一个统一对外的连接标准。
在我们开发当中,也有一个对外暴露的接口,因为他们服务的协议都是统一的,最常见的就是hhtp协议,我们规定好一种格式,让客户端来调用我们。
这里面键盘鼠标属于调用方,插到笔记本的USB上,就可以连接设备,就可以进行操作了。对外暴露的一个统一的一个规范,这样去理解接口,更形象一些。
在了解完什么是接口之后,我们来说一下什么是接口测试。
接口测试 测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等,保证对外提供接口的正确性和健壮性。
我们在具体测试过程中,我们不用关心接口调用方和接收方的实现逻辑,我们只需要知道传入什么数据,返回什么的结果是否达到我们的预期。接口测试其实也是黑盒测试,他与UI测试的区别就是没有界面交互,是不可视化的。
测试前置 :我们不能等到整个系统全部开发完成才能进行测试,我们可以通过调用接口来进行测试,把问题拦截在前期,降低问题修复成本。
Bug更容易定位 :因为我们按接口进行测试,出现问题后在被测接口中排查就可以了,它比系统集成之后,发现问题更容易定位,系统集成之后有各种模块的调用,出现bug之后再排查,排查的链路非常的长。另外从机制上更接近出问题的地方更容易命中问题。
前后端分离结构 :现在很多系统都采用前后端分离架构,各服务之间更多的是通过接口来实现信息互通,对接口进行直接测试,可以更全面的覆盖各类测试场景。
自动化测试落地性价比高 :比UI自动化测试更稳定,我们上面已经说了UI层的元素时常发生变化,有时改一个简单的元素,都有可能导致我们的自动化测试走不下去,写一套自动化测试脚本比较容易的,但是维护起来,会耗费很大的时间精力,相对来说,接口就比较稳定,一个项目没有大的改造,入参和出参就是固定的,变化的概率比较小,这样维护起来也比较方便。
减少安全隐患 :比如我们在平常的测试过程中,测试用户名和密码,密码格式要求不能输入特殊字符,前端做了校验,而后端没有处理,这样我们只测试页面,这条case就默认通过了,但一些黑客可能通过抓包的方式进行登录,这样安全隐患就比较大了。我们对接口进行安全测试,可以避免安全隐患。
借助工具 : Postman、Jmeter、jsf平台、jsf测试工具、easytest
编写测试脚本 :Java+TestNG
请关注下一篇如何使用Java+TestNG进行接口自动化测试
1--分组
2--项目
3--接口
4--测试集合
鼠标选中测试合集,右侧四个按钮分别为克隆合集,导入接口,编辑合集,删除合集
勾选测试的接口并点击【确定】,所选择的接口即显示在测试集合中,然后可编辑接口测试用例
如上图,编辑用例可以进行用例名称,用例执行环境,接口参数及请求数据的填充,编辑完成后点击保存,则用例保存成功
点击“发送”,可以以当前填写的请求数据对此接口进行请求。
对用例执行结果进行断言,首先需要开启。
yapi提供快捷的断言方式,点击即可生成对应的断言。
以上断言方式可以自行根据需要进行编辑和优化,基本可以满足我们日常测试所用。
如果接口数据固定写死,只需要正常填写保存即可
{{global.变量名}}
如果连续的测试场景,后面的接口需要用到前面接口请求的数据或者返回的数据,这种场景需要进行接口间的参数传递
Yapi接口传递格式:
点击测试集合,展示的测试用例列表中,会展示key
通过接口请求或者抓包获取到请求数据和返回数据
对数据进行分析,找出自己所要的字段,通过层级关系获取到表达式
例:假设key为100返回的body
假设我们想要获取到 "plate_number"的值,那么写法就为:$.100.body.data.orders[0].plate_number
层级关系用.表示,列表取对应数据用[n]下标指定。
yaip也提供了可视化的界面操作,实现接口参数传递
1、PATH PARAMETERS或者QUERY PARAMETERS
点击参数后面的编辑按钮,弹出高级参数设置弹框:
选中具体字段后生成表达式,点击插入即可填入
2、请求BODY
与PARAMETERS一样的操作,但是表达式必须要用双引号包裹起来
tips:
如果想要通过可视化的高级参数设置来进行参数传递,气体条件需要在接口中将完整的返回body导入,这样才能在高级参数中找到对应的字段
路径:接口--编辑--返回数据设置--导入json--?保存
如果接口中我们需要动态生成一些随机参数数,可以使用mock占位符
操作与接口参数传递一致,唤起高级参数设置弹框后选择mock数据
常用占位符:
占位符更多相关内容可参考: 《yapi中使用json-schema mock数据》 .
用例执行有两种方式,一种是直接执行,另外一种是服务端执行,调试时可以用直接执行,如果需要集成或者需要生成测试报告,选择服务端执行
用例编写完成后,点击测试集,右侧中点击【开始测试】即可运行所有测试用例:
路径如图所示
运行完成后通过的用例会有绿色标识,未通过的用例会有黄色或红色标识。
点击单个用例右侧的测试报告,会展示完整的执行请求,response以及断言结果
服务端执行,项目路径直接执行一致,只不过选择服务端测试即可
配置根据自己需要填写:
如果一个用例集合中每个用例的断言和接口请求状态码可以设置为一样时,我们可以在通用规则配置中整体设置
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~