自动化接口测试维护(自动化接口测试用例)

网友投稿 421 2023-01-09


本篇文章给大家谈谈自动化接口测试维护,以及自动化接口测试用例对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享自动化接口测试维护的知识,其中也会对自动化接口测试用例进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

接口自动化测试

接口 :外部系统与本系统之间以及系统内部的各个子系统间,以约定标准提供的服务,包括对外提供的接口/对内提供的接口。

在这块我们举一个比较生活化的例子,我们平常使用的笔记本,在笔记本的两端有很多小插口,最常见的就是USB插口,我们可以把鼠标连接在USB插口上,也可以把键盘、U盘连接在USB插口上,为什么同一个USB接口可以连接这么多设备呢,其实这个接口,他就有一个统一对外的连接标准。
在我们开发当中,也有一个对外暴露的接口,因为他们服务的协议都是统一的,最常见的就是hhtp协议,我们规定好一种格式,让客户端来调用我们。
这里面键盘鼠标属于调用方,插到笔记本的USB上,就可以连接设备,就可以进行操作了。对外暴露的一个统一的一个规范,这样去理解接口,更形象一些。

在了解完什么是接口之后,我们来说一下什么是接口测试。
接口测试 测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等,保证对外提供接口的正确性和健壮性。
我们在具体测试过程中,我们不用关心接口调用方和接收方的实现逻辑,我们只需要知道传入什么数据,返回什么的结果是否达到我们的预期。接口测试其实也是黑盒测试,他与UI测试的区别就是没有界面交互,是不可视化的。

测试前置 :我们不能等到整个系统全部开发完成才能进行测试,我们可以通过调用接口来进行测试,把问题拦截在前期,降低问题修复成本。
Bug更容易定位 :因为我们按接口进行测试,出现问题后在被测接口中排查就可以了,它比系统集成之后,发现问题更容易定位,系统集成之后有各种模块的调用,出现bug之后再排查,排查的链路非常的长。另外从机制上更接近出问题的地方更容易命中问题。
前后端分离结构 :现在很多系统都采用前后端分离架构,各服务之间更多的是通过接口来实现信息互通,对接口进行直接测试,可以更全面的覆盖各类测试场景。
自动化测试落地性价比高 :比UI自动化测试更稳定,我们上面已经说了UI层的元素时常发生变化,有时改一个简单的元素,都有可能导致我们的自动化测试走不下去,写一套自动化测试脚本比较容易的,但是维护起来,会耗费很大的时间精力,相对来说,接口就比较稳定,一个项目没有大的改造,入参和出参就是固定的,变化的概率比较小,这样维护起来也比较方便。
减少安全隐患 :比如我们在平常的测试过程中,测试用户名和密码,密码格式要求不能输入特殊字符,前端做了校验,而后端没有处理,这样我们只测试页面,这条case就默认通过了,但一些黑客可能通过抓包的方式进行登录,这样安全隐患就比较大了。我们对接口进行安全测试,可以避免安全隐患。

借助工具 : Postman、Jmeter、jsf平台、jsf测试工具、easytest
编写测试脚本 :Java+TestNG

请关注下一篇如何使用Java+TestNG进行接口自动化测试

分布式接口自动化测试平台

基于之前开发过自动化框架自动化接口测试维护,在接口自动化测试平台上做了全新的探索和设计自动化接口测试维护,在落地性,效益性,业务性等方面做了进一步思考和优化。

从系统需求设计 + 技术框架选型 + 数据表结构设计 + 后端开发 + 前端开发 + 镜像打包部署 + docker 容器化上线,都由我一个人独立设计开发完成的,挑战很大,但是能顺利完成,也算是给自己 2020 年一个满意的答卷,当然更满意的其实是打开了自动化测试平台新世界的大门。

1、接口管理,添加和维护功能。

2、支持用例跳过功能、任务消息提醒(针对当前任务公司所有成员)

3、更丰富的用例断言类型。

4、支持定时任务,在任务管理中分布式执行我的所有接口用例,目前支持crontab表达式和interval间隔时间两种方式调度定时任务。

5、更漂亮、详细的报告展示,快速发现失败接口用例。

6、成员管理,前后端都引用了角色权限管理;前端页面无法访问成员管理、发布成员消息通知等,后端:editor角色无法进行新增、修改、删除功能操作

7、新增业务测试功能 - 多接口实现一个业务流程

8、新增用例前置功能(用例后置功能目前使用上并不灵活,后续解决这个问题,并且更新sql校验功能)

9、用例逻辑处理内置函数功能

10、前端兼容Chrome浏览器、手机端部分页面做了适配(其他浏览器暂未测试)

整个平台后端使用 Python 开发,前端使用 vue 框架,采用前后端分离。

任务结果查看

断言功能

用例前置后置调试功能

报告详情

接口自动化测试框架为什么要封装接口关联?

封装是面向对象编程的一大原则,就是把程序的一些细节隐藏起来。封装好的函数接口可以直接拿来调用,不用进行重复性开发。而且后期维护的时候也可以进行单独接口的维护。来说就是为了更好的复用和维护。

如何进行接口自动化测试

曾经有一段时间,人们习惯于在MSExcel里面编写单元测试用例,然后开发人员就按照单元测试用例一步一步的来实现用例。这通常是很耗时的漫长的过程,尤其是如果应用很大或者UI很复杂的话。这一套单元测试的执行过程常常成为瓶颈,因为任何代码修改都会带来手工执行大量单元测试,以确保新的修改没有破坏原有功能。如今是个快节奏时代,人们希望工作能够无需人工介入、自动化的快速完成。每个人都喜欢执行一个命令就能把工作搞定,而且在执行期间不需要人工介入。需要做的仅仅是检查一下最终的输出结果。当这个世界正在迈向自动化时,自动化测试也不甘落后,不论是在功能测试方面还是UI测试方面。每天我们都能听说自动化测试方面涌现出的新软件。本文提供了一些信息给那些想用CodedUI自动测试框架来进行应用界面自动化的.Net开发者。什么是CodedUI?最近我一直在寻找一个自动化的用户接口测试的解决方案。用户接口测试需要用户多次进行手工输入操作,这是一个既枯燥又费时的过程。因此,我想寻找一种更智能的自动化UI测试的方案,这种UI测试在不需要人工干预下,能够被保存,记录并提供支持,快速测试代码的改变。CodedUI采用用户接口来驱动应用的进行自动化测试。这些测试包括UI控制的功能性测试。他们使你可以验证整个应用的功能是否正确,其中包括了用户接口。CodedUI尤其适合用于用户接口中存在校验或者其它的登录方式的测试,比如网页。CodedUI也可以用于人工测试用例的自动化。CodedUI测试帮助用户测试应用程序的用户接口。这些测试允许用户验证应用程序的功能。CodedUI多数时间用于帮助验证在UI层本身的有效逻辑。它能够验证值对用户接口的控制的正确性。其它方案市场有许多自动化用户接口的方案,比如HP的QuickTestProfessional,IBMRationalFunctionalTester.其它著名的,易于使用的开源工具解决用户接口自动化问题的有Selenium,也能够记录测试,需要的时候回放。市场上还有来自Microsoft的也能不需要太多努力做同样的事。用VisualStudioMicrosoft还有CodedUI的方案用于单元测试。CodedUI适合在哪儿用?大多数安装了VisualStudio的开发者都喜欢在VisualStudio的环境里进行单元测试,而不是使用第三方工具。由微软提供的CodedUI,在VisualStudio环境里可谓上手即用。在开发者的机器上无需另外安装任何东西。一旦你安装了VisualStudio的Premium版或者Ultimate版,你就同时也安装好了CodedUI。CodedUI可用性为了使用CodedUI,需要安装VisualStudio2010/2012/2013的Premium版或者Ultimate版。CodedUI测试的组成CodedUI测试的组成容易理解。它可分成下列文件:UIMap.uitest这个文件是UIMap类的XML表示。UIMap类包括视窗,控件,属性,方法,断言和动作。UIMap.cs对UIMap的自定义部分都存在这文件里。如果修改直接存在UIMap.designer.vb文件的话,那些修改都会在记录结束后丢失,因为这个文件重新创建了。给每个在测应用程序中的每个模块创建一个独立的UIMap文件。UIMap.Designer.cs这是部分类表达各种类。这各种类是给多样的控件和他们的范围,属性,方法的类。提示:不要直接修改UIMap.Designer.cs。加入你这样做,这个修改会被覆盖掉。CodedUITest.cs这类表示的实际的CodeUI测试类,方法调用,和断言调用,所有的方法和断言默认都是从UIMap.Designer.cs文件调用的。这类有具有【codedUITest]属性TestClass和包含具有【TestMethod]属性的多种方法。CodedUI的特性/好处进行用户界面测试的同时进行校验.生成VB.Net/C#代码.测试用例可以被记录和重放.集成了ALMStory能够作为每日构建的一部分来运行.根据需要进行高级扩展.和VisualStudio集成在一起,所以无需单独购买许可.CodedUI对Web和Windows应用同样适用.著名的Microsoft支持.创建CodedUI测试CodedUI测试可以用下列方式创建使用MTM进行快速自动构建从现有的记录(从手动测试中记录下来的操作)中创建CodedUI在CodedUITestBuilder创建的底稿的基础上创建一个新的CodedUI测试.自己写CodedUI.这个白皮书的范围仅限于“在CodedUITestBuilder创建的底稿之上创建一个新的CodedUI测试”。小贴士:尽量使用CodedUITestBuilder。CodedUITestBuilder每一个CodedUI测试的生成都需要遵从下列步骤.记录/停止/暂停编辑记录下来的步骤添加断言生成代码创建CodedUI测试创建新的CodedUI项目要开始使用CodedUI,首先我们需要创建一个测试项目,用来保存所有CodedUI测试。创建一个新的CodedUI项目包含下列步骤打开VisualStudio2012选择FileNewProject选择需要的语言模板(C#orVB.Net).我们选择了C#.选择CodedUIProject输入一个名字点击OK按钮添加CodedUI测试VisualStudio默认配置为创建CodedUI测试使用"GenerateanewCodedUITestfromscratchusingCodedUITestBuilder"提示:在测试的应用程序中,当你创建UI控件时尽量使用有意义的名称,从而对于自动生成的控件显得更加有意义和可用。一旦CodedUI测试工程创建完成,将会自动打开生成CodedUI测试代码的对话框,请给出以下选项的设置。记录操作,编辑UI地图或添加断言使用一个已经存在的操作记录默认情况下选择记录操作,编辑UI地图或添加断言,无需做任何操作,然后点击"ok"CodedUITestBuilder选择了上述选项后,CodedUITestBuilder就会被打开,同时VisualStudio窗口被最小化。这意味着我们已经为记录操作做好了准备。正如之前描述的,CodedUITestBuilder基于下列4个操作来做记录RecordStepsUpdateorDeleteStepsVerifyResults(AddAssertions)GenerateCode小贴士:如果用户界面(UI)变化了,就重新记录测试方法或断言方法,或者重新记录一个既有测试方法中受影响的部分。记录一个序列的操作.记录一个操作主要需要下列几步.StartRecording,通过选择Record按钮即可.PauseRecording,用来处理记录过程中的其它操作,即GenerateCode.Edit/Delete操作,以防错误的操作被记录。Generatecode为记录下来的操作创建编号。会给每一个记录下来的操作都生成编号。AddAssertions用来校验结果。小贴士:创建断言最好使用CodedUITestBuilder,因为它会在UIMap.Designer.cs文件中自动添加一个断言方法。为记录动作做计划任何事情的成功都取决于它计划得有多好。较好地计划最大限度保证了任务成功完成。这样总是比较好,在开始记录动作之前,我们计划好所有的所有要计划的步骤。这里我们将要使用应用程序Windows计算器来记录步骤。我们要自动地加和减两个数字。在记录加和减两个数字的时候,下面的步骤将会用到。。点击“开始记录”控件。到开始,点击执行。在执行窗口,输入”calc"。停止记录,看记录的步骤。删除错误的步骤(存在的话)。产生代码;提供和动作相匹配的名字。比如,打开计算器。提示:当你产生一个方法时候,使用一个有意义的方法的名字,代替默认名字。有意义的名字帮助识别方法的木的。。重新记录,提供第一个数字,暂停记录产生代码。重新记录,提供操作(加或者减),暂停记录,产生代码。重新记录,提供第二个数字,暂停记录,产生代码。。加断言提示:产生你的测试作为一系列记录的方法提示:可以的时候,限制每个方法小于10个动作。这模块化的方法让UI改变时候容易替换方法。我们已经看到了CodedUI可以使开发者的生活变得多么轻松,尤其是遇到每次都需要进行很多输入的复杂页面的时候。这时,测试用例只需要被记录一次,就可以按照需要执行任意多次。使用CodedUI比使用其它工具的好处是,它能自动适配Web页面和Windows窗口应用。CodedUI测试可以用VisualStudio2010来运行,也可以用任何版本的VS来运行,它们的功能正变得越来越强大。无需多说,CodedUI是一个由技术领导者提供的强大工具,想要体验CodedUI测试的强大,我们应该开始在项目中使用它看看它能带来多少ROI,我确信CodedUI不会让你失望。

接口自动化怎么做的

接口自动化的相关知识来源于计算机科学领域,属于计算机的硬件方面的知识,需要学习者从“理论”和“实践”两个方面认真学习。
理论部分应掌握与接口自动化有关的概念、定理、定义和专业术语等;实践部分就是具体的实际操作,认识计算机接口,会对接口进行常用的配置操作等。
方法/步骤
1
首先打开计算机接口相关书籍的第一页,从第一页开始认真看书。必须掌握“计算机接口的定义”和“计算机接口的工作原理”。
2
通过精读计算机接口相关教材,掌握计算机接口的定义和工作原理,可以在不看书的情况下详细复述出来它们的精要内容。
3
这两点做到之后就可以上机举起操作了,打开计算机的主机箱,对照我们所学的各种知识进行实践的认识,相信在你认真做好以上三点之后,一定可以很好地学习计算机接口知识

「自动化测试」是否有必要做自动化测试?


目录


一、前言

二、自动化目的

三、自动化分类

四、自动化实现



一、前言


在一些测试交流群经常会看到有小伙伴在问,"怎么做自动化测试?学习自动化测试有什么资料吗?自动化测试是不是很牛逼?" ,甚至有些言论是"不会自动化的测试人员,真的要被淘汰了吗?"


不得不说一堆流量号主抓住大众心理,点进去的必然是卖课广告,或者是关注微信公众号领取测试资料大礼包。


实话实说,自动化接口测试维护我之前也有同样的疑问,甚至带着担忧。每次又不甘心得领着测试资料大礼包......


当然,随着自己的认知不断扩大,自己的一套测试体系建设不断完善,于是这些担忧逐渐的消失。每项技术引用都要看适用场景,是否适合自己的团队,因地制宜才能发挥其最大的价值。


因此,我想通过这篇文章来分享下我对于自动化测试的理解。


二、自动化目的


自动化工作可以节省很多人工操作成本,减少人工重复性操作,提高整个团队的研发效率。但是如果搭建自动化体系需要耗费很长时间,投入很多人力资源,但是用户只要2-3分钟的手动工作就能解决,而且这个操作并不频繁,又或者需要自动化操作的平台变更迭代非常快并且没有规律,自动化工具在后面类似累活的跟着。那么自动化还是有必要吗?


我之前在的团队,造测试数据特别困难,严重影响了整个研发效率,但是当时也没有一个好的解决办法,后来基础研发组做了一个造数平台,这个平台需要自己去配置各种字段,并且梳理出各个表字段的关联,从头到尾一个一个去构建场景,一不小心就配置错误,看着提示你也找不到原因的那种。这给造数过程中又添了一个拦路虎,给本不充裕的测试时间,又耗时一把。


如果能在做执行任务前评估任务的投入和收益,那么是不是就能更加合理的开展这项任务。那么自动化测试的投入和收益是怎样的呢?


投入自动化接口测试维护:通过测试人员借助脚本或者工具实现自动化,维护自动化平台。

收益:提高测试效率,提升测试人员的成长。


自动化测试真的提高测试效率吗?真的可以提升测试人员的成长吗?针对后者,我认为是有的。接下来我们就来聊聊自动化测试是否提高测试效率。



三、自动化分类


自动化一般分为接口自动化和UI自动化,其中UI自动化又分为Web UI自动化和App UI自动化,按照我的理解还应加上部署自动化。


接下来我将针对这四种自动化的场景做一个介绍。因为我对于UI自动化不是很熟悉,我认为投入产出比不是很高,主要还是因为我没咋接触过,所以后面仅做简单介绍,重点讲解接口自动化和部署自动化。




四、自动化实现


4.1、接口自动化

接口

接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递过程,以及系统间的相互逻辑依赖关系等。


流程

填写接口,入参,对出参进行断言,每天定时构建,输出测试报告。

入参覆盖范围:必选,可选,有/无/null,类型,数值大小/数值范围,特殊字符;

出参:json,data;

接口关联:接口之间的依赖,数据传递;

断言:对响应做核验,可以对状态码或者msg做校验。


优点

接口测试可以做到更多的覆盖场景;

接口测试可以更快的发现服务端问题;

接口测试相对容易实现自动化持续集成;

接口测试相对于比单元测试比较贴近业务场景;


技术选型

1、MeterSphere

MeterSphere 是一站式测试平台,涵盖测试跟踪、接口测试、性能测试、 团队协作等功能,全面兼容 JMeter、Postman、Swagger 等开源、主流标准。



MeterSphere是一个功能交全的平台,并且是开源的,对于免费版就足够小团队使用了,使用门槛相对来说较低,对于技术能力要求不高,所以是一个不错的选择。MeterShpre使用的技术栈是SpringBoot+vue,以及一些中间件,也可以在此基础上进行二次开发。



2、Python

通过Python来做接口自动化的话,常用组件有:执行库Requests,断言库unittest,测试报告HTMLTestRunner,通过持续集成Jenkins做定时构建。


框架思想:封装,数据驱动。


使用Python的话则需要掌握一定的代码能力,当然这个对个人技能的提升是很有帮助的,但是如果在时间比较紧迫的并且没有足够的技术功底情况下,还是比较推荐MeterSphere的。


4.2、部署自动化

部署

部署就是将源代码编译成可运行软件包,比如jar包或者war包,并且将软件包放到目标环境,将软件包运行起来,并且能够被客户端调用。


流程

通过远程仓库拉取代码,前端编译,后端编译,下发软件包到目标机器,重启服务,启动失败则告警。


优点

相比传统手工部署,速度更快,不容易出错,提高交付效率。


技术选型

gitlab或者gitee:代码托管

git:版本管理

node:前端编译

maven:后端编译

ansible:下发文件

shell:重启服务

pipeline:流水线构建

Jenkins:CICD大总管,将以上工具整合起来,提供页面供用户操作部署流程。


4.3、Web UI自动化

UI自动化

通过页面元素定位定位到元素,模拟用户的操作行为,点击,输入,拖拽等。


流程

定位元素,模拟用户操作,发送测试报告。


优点

适用于回归主流程,并且变更不频繁的场景。可用于重复性的功能测试及验证。我之前在的团队做过一段Web UI自动化,但是因为需求频繁变更,并且精力有限,维护这个平台的成本较高,后面就没有持续维护了。


技术选型

Python,selenium。


4.4、App UI自动化

UI自动化

通过页面元素定位定位到元素,模拟用户的操作行为,点击,输入,拖拽等。


流程

定位元素,模拟用户操作,发送测试报告。


优点

适用于回归主流程,并且变更不频繁的场景。


技术选型

Appinum。


结论:我认为接口自动化和部署自动化是能够带来收益的,是真实能够提高效率的,并且也能够给测试人员的带来成长。




关注【嘎嘎软件测试】

搞测试,不迷路

呱呱大王本呱带你飞!

嘎嘎软件测试 分享个人成长、团队管理、软件测试技能知识等内容,做到有思想、有观点、有深度,欢迎订阅。

关于自动化接口测试维护和自动化接口测试用例的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 自动化接口测试维护的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于自动化接口测试用例、自动化接口测试维护的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java实现抖音代码舞源码
下一篇:java实现抖音飞机大作战
相关文章

 发表评论

暂时没有评论,来抢沙发吧~