自动化接口测试使用场景(接口自动化测试方案)

网友投稿 528 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进行接口自动化测试

接口测试有什么作用?

接口测试是测试系统组件间接口自动化接口测试使用场景的一种测试。
主要用于检测外部系统与系统之间以及系统内部各个子系统之间的交互点。
重点测试数据的交换、传递和控制管理过程自动化接口测试使用场景,以及系统间的相互逻辑依赖关系等等。

接口测试的主要作用是:
(1)能够提早发现 bug自动化接口测试使用场景,符合质量来控制前移的理念。
(2)接口测自试低百成本高效益,因为接口测试可以自动化并且是持续集成的。
(3)接口测试从用户度的角度对系统接口进问行全面检测。实际项目中,接口测试会覆盖一定程答度的业务逻辑

ui自动化测试有用吗

现在客户端流行的ui自动化测试框架层出不穷,但是也有很多人质疑UI自动化测试对测试本身的投入产出比,甚至认为UI自动化测试有用吗.

一.UI异常

UI异常包括白屏,黑屏,数据加载异常,花屏,重影,错位,覆盖等.

二.UI自动化测试的使用场景

UI测试主要测试的是产品的功能需求.那么,功能主要验证的方面有:

我们每测一轮测试,在回归和兼容性方面投入的人力是巨大的.而这些人力做的都是重复的劳动.UI自动化在降低人力方面,发挥着重要的作用.而最近热门的图像识别和深度学习,又给UI自动化测试在页面样式识别方面补足了短板.

三.UI自动化元素定位

很多人反应UI自动化脚本维护成本高,因为页面布局总是在变.所以,UI自动化测试更适合业务相对稳定的产品.而且我们在写自动化脚本时,主要是通过

1.控件识别,控件识别的方法有:

等.而其中最不稳定的就是classPath,最稳定的是id.所以我们如何巧妙的定位控件,成为了其中脚本是否稳定的关键.

2.图片识别:

sikuli/airtest;

3.图片对比:

感知哈希算法;图片缩放;图片像素值对比.

其次,要做好失败重试,和显式隐式等待等,pom模型,用例步骤原子化,独立性。

四.UI自动化测试效果

接口测试我们很容易很清楚的可以拿到接口的成功与失败,响应时间,响应内容.但是客户端琳琅满目.

接口成功了,客户端就一定能看到页面数据吗?这个问题值得我们思考.

从发起请求,到页面呈现.其中诸多环节和诸多耗时.而客户端作为检验产品的最后一个环节,无疑起着决定性的作用.是用户最直观的感受.UI自动化测试就是作为真实用户的角色去检验产品,检验端到端的可用性.

六. 效果对比

我眼中的接口测试和接口自动化测试

接口测试的目的是为了增加测试覆盖度、深入度 ,对接口的各个参数做实际场景中很难遇到的异常场景的测试,保证接口的稳定性。如果在这个前提下接口测试还是没有发现 bug,那么可以 review 下历次迭代中是不是业务测试发现的所有 bug 都是前端的。如果是,那么说明你们的后端开发工程师能力实在很强,应该恭喜你们遇到了这么给力的队友。在测试压力很大的情况下就可以酌情考虑不做接口测试,前端测试完成就上线了。

如果不是那就应该 review 你们的接口测试用例了。是不是用例设计的还不如业务测试全面?是不是用例设计的时候默认按照正常的取值范围?按照正常的业务逻辑进行的用例设计导致用例的覆盖还不如业务直接黑盒测出来的覆盖全。

自动化测试的主要目的不是发现多少 bug ,而是为了快速对接口做回归、做线上监控等,避免接口出现了低级问题、阻碍问题但是大家不能第一时间知道,等过了很长时间线上出了强反馈或者在错误接口的基础上又做了很多开发才被大家发现。当然,在接口自动化的基础上再做压力测试、稳定性测试等也会更方便。在这个前提下再评估接口自动化测试是否有必要,思路就会清楚一些。

整体上测试是为了保证业务中的 bug 能够在有限的资源下最大量、最快速的发现,业务实际情况不同、测试团队规模不同、测试与业务的合作模式、测试团队成员的技术能力等等都会影响测试方案的制定。

个人觉得如果团队有专人做接口测试,这种情况下接口测试定位到用来发现更多 bug 是没有问题的,如果没有发现 bug 那就需要仔细找找接口测试用例设计的问题。接口测试的目的不是取代业务测试,而是减少业务测试遇到阻碍问题的概率以及减轻业务测试模拟异常场景的工作量。接口自动化测试的目的是在回归场景节约业务测试的工作量,在新业务测试中实际反倒会占用更多的测试资源。

以上是作者拉拉肥对接口测试以及接口自动化测试的理解。你怎么看?欢迎点击 原文链接 在原帖共同讨论。

如何用testng实现接口自动化测试

下面看看是如何一步步实现的:1、在TestNG的XML中设置参数。下 面的截图中,我设了两个参数,一个是testEnv,另一个是browser。参数的值可以直接写死,也可以由外部传入。参数有不同的作用域,如直接写 在<suite下,那他的作用域就是整个suite。如写在<test下,那他的作用域就是所在的test。2、在测试代码中使用参数。如下所示,我是在beforeClass 方法中,根据传入的两个参数来初使化浏览器和load 相应环境的测试数据。3、修改pom.xml文件4、Jenkins job 传入参数并执行mvn命令 在job中,我设置了两个参数,并给出了默认值。执行job时,可直接使用该默认值或根据实际情况把参数的值改成自己想要的。下面是Maven命令:mvn clean test -DtestEnv=%testEnv% -DxmlFileName=%xmlFileName%执行这条命令时,我们把testEvn及xmlFileName两个参数的值传入了pom.xml文件,接着,Maven在调用TestNG时又会把参数传过去。经过如上四个步骤,我们可以通过参数传递,灵活的指定测试环境、测试范围等,而不需要对测试脚本做任何改动。这边要讲下xmlFileName这个参数。因为考虑到要执行不同的用例集,比如只针对某一模块进行自动化测试,或对项目所有的功能进行全面回归,我们可以创建不同的TestNG XML文件,然后在执行mvn命令时指定你想要跑的那个XML文件。该方法适用于所有使用Jenkins + Maven + TestNG的测试场景。

web端自动化基础篇

一、自动化测试的好处

              1、  缩短测试周期:计算机行业更新迭代快速,大量频繁的回归测试消耗时间,自动化测试能够将重复的实行交给计算机去做,加快测试速度。

            2、避免人为出错:测试人员不可能持续高度集中,并且人类易受外界影响(头疼脑热,精神不振),可能会造成人为错误

            3、测试信息存储:自动化测试将测试信息和数据储存在文件中,思路清晰明确,交接方便

            4、轻易获取覆盖率:自动化测试能够解放测试人员,使测试人员能够有更多的精力做那些非重复性的工作。

            5、其他:自动化测试可以是实现自动或者定时执行

注意: 自动化测试的方向是对的,而且趋势也是如此,但是有些自动化实现不了的还是会手动测试的。

二、自动化分类

               1、 整体分类

                    (1)自动化功能测试

                    (2)自动化性能测试

                2、自动化功能测试的分类:

                    (1)单元测试:程序员搞定

                    (2)功能测试

                    (3)接口测试:大中型项目或长期项目可以采用自动化测试

                    3、性能测试主要是使用测试工具

                      (1)Loadrunner、Jmeter等,对软件进行压力测试、负载测试等等,因为这些无法用手工进行代替,所以必须自动化。

三、web自动化条件的使用和范围

                    1、前提条件

                           (1)手动测试已经完成,后期再不影响进度的前提下逐渐实现自动化

                           ( 2)项目周期长,重复性的工作都交给机器去实现

                           ( 3)需求稳定,项目变动不大

                            (4)自动化测试脚本复杂度比较低

                           ( 5)可重复利用

                    2、使用自动化测试的场景

                            (1)频繁的回归测试

                            (2)冒烟测试

                            (3)传统行业需求变化不大,应用频繁

                            (4)性能测试

四、web自动化常用的工具

            1、QTP(收费)

            2、Selenium(开源)

            3、RFT(收费)

            4、(1)元素定位工具:css选择器、xpath

                    (2)环境工具:(1)firefox35

                                               (2)firebug插件

                                               (3)firepath插件

            5、什么是xpath:XPath即为XML路径语言,它是一种用来(标准通用标记语言的子集)在 HTML\XML 文档中查找信息的语言。

            6、什么是xml:XML 指可扩展标记语言(EXtensible Markup Language)XML 是一种标记语言,很类似 HTMLXML 的设计宗旨是传输数据,而非显示数据

            7、(1)xml是设计为传输和存储数据的。

                (2)html是显示数据以及更好的显示数据

            8、获取元素

                (1)nodename:选取此节点的所有子节点

                (2)/从根节点选取

                (3)//从匹配选择当前节点选择文档的节点,不考虑位置

                (4)“.”选取当前节点

                  (5)“..”选取当前节点的父节点

                (6)@选取属性

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

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

上一篇:微服务网关需要注意什么(微服务网关技术选型)
下一篇:Java的外部类为什么不能使用private和protected进行修饰的讲解
相关文章

 发表评论

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