精华内容
下载资源
问答
  • 接口自动化
    千次阅读
    2021-07-21 23:12:54

    接口自动化
        一、pytest用例管理框架
            (一)pytest默认规则
                1、py文件必须以test_开头或者_test结尾
                2、类名必须以Test开头
                3、测试用例必须以test_开头
            (二)pytest用例管理框架的作用
                1、发现测试用例:从多个py文件中通过默认的规则去找测试用例
                2、执行测试用例:顺序和条件
                3、判断测试结构:断言
                4、生成测试报告:html,allure、
                5、python:unittest或pytest;java:junit,test
        二、pytest全局观
            (一)它可以和所有的自动化测试工具selenium、requests、appium结合实现web自动化,接口自动化以及app自动化。
            (二)跳过用例以及失败用例重跑
            (三)结合allure生成美观的测试报告
            (四)和jenkins持续集成
            (五)有很多强大的插件
                1、pytest-html  生成html测试报告
                2、pytest-xdist   多线程运行
                3、pytest-ording   改变测试用例的执行顺序
                4、pytest-rerunfailures   失败用例重跑
                5、allure-py生成allure测试报告
                6、一般实际开发当中都会使用requrements.txt文件保存插件名称。然后通过:pip install  -r  requrements.txt
        三、运行方式
            (一)主函数的方式(命令行的方式)
                1、-v   输出更加详细的运行信息
                2、-s   输入调试信息
                3、-n   多线程的运行
                4、--reruns =数字  失败用例重跑
                5、-html=报告的路径
            (二)实际工作中使用pytest.ini的配置文件来配置运行
        四、前后置,夹具
            (一)setup/teardown 在每一个用例之前和之后执行一次
            (二)setup_class/teardown_class  在每一个类之前和之后执行一次
            (三)实现部分的前置
                1、其中一个用例做数据库验证
                    部分前置
                        (1)@pytest.fixtrue(scope="作用域",params="数据驱动",autouse="自动执行",ids="自定义参数名",name="重命名)
                            作用域:function、class、module、package、session
                        (2)一般情况下:@pytest.fixtrue 一般会和conftest.py文件一起使用
                            conftest.py  名称是固定的,功能很强大
                                conftest.py   文件是单独存放@pytest.fixtrue()的方法。用处是可以在多个python文件之间共享前置配置
                                conftest.py  里面的方法在调用时不需要导入,可以直接使用
                                conftest.py   可以有多个,也可以有多个不同层级
                        (3) yield  # 可以通过yield 唤醒类似teardown的功能。简单理解就是返回。yield 和return都表示返回数据的意思,只是区分在于,yield返回多次以及多个数据,return只会返回一次,return之后都不会接代码
        五、接口自动化测试框架封装(接口关联的封装)
            (一)一般情况下,我们是通过一个关联的yaml文件来实现
                1、type  根目录下:新建new file 
                2、type  根目录下: 新建python package
                3、common 目录下:yaml_unti.py
        六、pytest 断言 (assert)
        七、pytest 结合allure-pytest 生成allure测试报告
            (一)官网下载allure
                1、放到没有中文的路径下,然后把这个bin目录配置到环境变量的path里面。
                2、在cmd.exe中 运行 allure --version,看到 allure 版本,即表示 allure 命令行工具安装成功
            (二)显示版本号之后,pycharm需要重启
                通过allure --version
            (三)执行命令
                1、生成临时的json文件的报告
                    (1)pytest.ini文件  addopts  
                    (2)--alluredir ./temp 
                2、通过临时的json文件生成allure 报告
                    (1)all.py
                    (2) os.system("allure generate ./temp  -o  reports   --clear")
            (四)allure报告的定制
        八、接口自动化测试框架YAML数据驱动的封装
            (一)@pytest.mark.parametrize(args_name,args_value)
                1、args_name:参数名
                2、args_value:参数值(使用list列表,tuple元祖,字典列表,字典元祖)在数据中有多少个值,那么接口用例就会执行多少次。
                3、import pytest


                  class TestApi:
                  @pytest.mark.parametrize('args', ['百里', '星瑶', '依然'])
                  def test_api(self,args):
                  print("百里")

                  if __name__ == '__main__':
                   pytest.main(['test_api.py'])
        九、yaml 详解

    更多相关内容
  • python 接口自动化测试python 接口自动化测试python 接口自动化测试python 接口自动化测试python 接口自动化测试python 接口自动化测试python 接口自动化测试python 接口自动化测试python 接口自动化测试python 接口...
  • [接口测试] 是相对来说和我们的功能测试 [最为接近的一种自动化测试手段] ,所以我们首先来学习接口测试的内容。 实现接口的开发与接口的测试,在我们的思维上、想法上、面向的态度上都是不一样的。所以大家要有一个...
    万叶集
    🎉 隐约雷鸣,阴霾天空。 🎉
    🎉 但盼风雨来,能留你在此。 🎉

    前言
    ✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,致力于用白话讲解技术知识的博主 ✌
    🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆
    📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
    💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
    🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


    📕 系列专栏:
                   🇨🇳 Python全栈系列 - [更新中]     【 本文在该系列】
                           🍎 Python零基础入门篇
                           🍎 Python语法进阶篇
                           🍎 Python自动化办公篇
                           🍎 Python自动化测试实战篇
                   👋 网安之路系列
    ​                       🍋 网安之路踩坑篇
    ​                       🍋 网安知识扫盲篇
    ​                       🍋 Vulhub 漏洞复现篇
    ​                       🍋 Shell脚本编程篇
    ​                       🍋 Web攻防篇   2021年9月3日停止更新,转战先知等安全社区
    ​                       🍋 渗透工具使用集锦  2021年9月3日停止更新,转战先知等安全社区
    ​                ⭐️ 点点点工程师系列
    ​                       🍹 测试神器 - Charles 篇
    ​                       🍹 测试神器 - Fiddler 篇
    ​                       🍹 测试神器 - Jmeter 篇
    ​                       🍹 自动化 - RobotFrameWork 系列
    ​                       🍹 自动化 - 基于 JAVA 实现的WEB端UI自动化
                           🍹 自动化 - 基于 MonkeyRunner 实现的APP端UI自动化



    🐳 实战接口测试说明

    在前面的三个小章节里呢我们了解了软件测试与软件自动化测试的基础内容,让大家对自动化测试有了一定的了解。就像前文说的,自动化领域现在大体可以分为三个部分。如果说将自动化领域比作一个可以通关的游戏,第一个将要面临的 BOSS 就是 接口自动化测试 ,第二个就是 WEB自动化测试, 最后一个就是因为现在APP的流行所在来的 APP移动端测试

    接口测试 又是相对来说和我们的功能测试 最为接近的一种自动化测试手段 ,所以我们首先来学习接口测试的内容。 实现接口的开发与接口的测试,我们的思维上、想法上、面向的态度上都是不一样的所以大家要有一个思维上的转换,要认识了解一下 接口测试到底是做什么的?它的功能、意义在哪里。

    接下来还需要做一个知识储备 —> 理解 HTTP 协议的基础知识。然后最重要的两个部分,先通过一些简单的工具实现接口测试,实现接口测试的编写来辅助我们实现接口测试;当然是用工具挺不是最终目标,我们的最终目标是通过 Python 的知识、通过编程的技巧来完成接口测试脚本的编写,再上升一步上升到 接口测试框架的搭建 ,然后在通过某旅游网的接口完成实战这样的一个学习。

    🐳 接口的定义

    接下来我们就从自动化测试领域里面最容易实现也是实际工作中最普及的接口测试开始学习,在这一小节里会有两个知识点。

    1、什么是接口,接口的概念?

    2、怎么做接口测试?

    🐬 接口的概念

    官方给出的解释:

    接口又称 API (Application Programming Interface,应用程序编程接口),是一些预定义的 函数 ,目的是为了提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又 无需 访问源码,或理解内部工作机制的细节。

    PS:是不是说的很虚,好像说了,又好像啥也没说... 😋


    那就说点人话,简单的概括一下:

    • 接口其实就是预先定义好的程序代码
    • 使用者不需要关心代码的细节
    • 直接可以被其他人调用,用来获取信息或者实现某些功能

    再再通俗一点的解释:

    • 好比我就是拥有一些功能的集合体
    • 在你安排我做某些事情的时候,不用关心我是怎么做的
    • 我只是给了你一个访问地址
    • 你通过这个地址呢找到了我,按照我规定的格式提供了我需要的信息
    • 我会给你一个反馈,这个反馈就是根据你提供的信息返回的你需要的信息

    PS:这就是我们比较通俗的理解一个接口。


    🐬 软件中的接口

    在我们的实际软件项目中,接口其实就是系统与系统之间、模块与模块之间、服务与服务之间相互调用的一个入口。从开发者角度,接口是一个分工协作的产物。不同的开发者实现了自己的功能之后封装成接口,供应其他的开发者调用;其他的开发者呢只要按照上一个开发者规定的格式发送一些必要的参数就能够使用这个功能。比如下图:


    图中是一个 登录接口 的实现和前后端调用的一个流程,对于使用登录接口的人来说,不需要关心后面的查询数据库等逻辑,只需要传入用户名和密码,接口返回是不是登录成功即可


    常见的几种接口类型如下:

    • HTTP 接口:最常见也是最常使用,也是后续学习当中要着重介绍的接口;通过 HTTP 协议来传输的接口类型可以传输 文本、表单等数据 ,也可以传输 json 类型的对象,或者是 xml 类型的数据…

    • RPC 接口:现在比较流行的接口(严格意义上来讲,其实是 RPC协议),这个接口的准确说法叫做 远程方法调用 。现在在 阿里、京东、当当 等大厂都是在使用这种 RPC 类型的接口在进行传输。
      • 思考一个问题:为什么会有 RPC 接口的出现,就是随着现在分布式系统的出现。当需要调用部署在其他服务器上的方法的时候,这个时候使用 RPC 接口 是最好的。像 淘宝、支付宝、余额宝... 这些阿里系旗下的很多应用都是通过 RPC 接口来进行交互的。
      • 更形象的解释 RPC 接口,可以这么理解:远程调用接口的时候,希望能够像本地一样调用的方便,让调用者感知不到远程调用的逻辑,不需要搞一串发起 HTTP请求的代码 ,这就是 RPC 的形象一些的解释。

    • SOAP接口:这是一种简单的面向对象的协议,基于 HTTP协议 ,但是使用 XML 作为默认的传输格式。

    • Web Service 接口:Web Service 呢略微有些特殊,它其实是基于 SOAP 协议的一种 RPC 的实现方案。相对于传统的 HTTP接口 只传输文本请求和文本响应,通过 Web Service 可以拿到远程的一个对象,并且能够直接调用这个对象的属性和方法,也算是 HTTP 接口。

    • REST API:现在很流行的,翻译过来叫做 “表述性状态转移”。它还是 HTTP接口,但是设计风格不太一样了,它将一切的接口视为 “资源”,要求接口路径统一管理,也分版本管理。规定了 GET、POST... 等请求和 HTTP 状态码的使用规范,并且默认使用 JSON格式 来进行传输,这也是 REST API 的一种风格。

    对于我们来说,在做接口测试的时候 90% 的经历是在做 HTTP 类型的接口,所以后面的内容也会就这个方向深入,去进行挖掘。

    🐳 什么是接口测试

    在了解了什么是接口之后,接下来我们再看看什么是接口测试。接口应该如何去测试。

    顾名思义,接口测试其实就是测试系统组件间接口的一种测试,也就是针对上文所述的那些接口的测试。

    接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 不仅仅是看接口有没有实现还要测试一下接口逻辑

    🐬 做接口测试的好处

    在介绍之前,大家先像一个问题,那就是 余额宝 的转入与转出。如果我们想要试试 余额宝 的转入与转出功能,从纯黑盒的角度来说,那就得需要在 APP 的界面上去点击操作,但是实际上可能前端界面写出来集成好之前后端的这个接口其实早就已经写好了,这也是很正常的。

    所以,如果我们能够开展接口测试就能够更早的发现问题,有效的降低测试成本,而且接口是各种系统功能的一个基础。如果接口都出现问题了,那就回引起很多系统的问题,并且非常不容易定位,所以提早的开展接口测试也会有更好的效果。

    从测试的 ROI 来说,接口相比于UI的界面要稳定的多,有利于测试人员进行自动化、进行一些持续集成的开展,这是测试人员进行接口测试的一个优势。

    总结一下就是下面这四点:

    • 及早发现问题
    • 降低测试成本
    • 接口是各种系统之间相互配合的基础
    • 接口一般较UI相对稳定,利于进行自动化

    🐬 接口测试的进化史

    实际上在我们的正式工作中,在漫长的互联网测试形态的演变中,接口测试出现了三种阶段的改变。

    • 手工测试:最早的时候大家都是黑盒测试不会单独的进行接口测试。仅仅是针对有前台、有UI的功能进行验证。这种的就是前面章节提到的 瀑布式的流程 。随着敏捷迭代的普及,最早出现的接口测试就是用手工来进行调用,也就是开发提供一个接口,然后测试来使用,这是最初的一个形态。

    • 使用工具:逐渐的测试人员开始使用一些工具来针对接口进行一些操作,比如现在大家耳熟能详的 PostmanJmeter … 这些等等。

    • 接口框架 - 工具研发:再到后来大家会觉得使用工具不太自由,不太方便进行定制化的调用,不太方便符合我们想象的那样进行操作。所以就有这样一种岗位 - 测试开发工程师 。处于这样岗位的工程师,开始致力于一些框架、辅助工具等等的开发。

    对于现阶段我们有一定代码基础的童鞋来说哈,既然我们有一定的代码基础了,最适合也是最应该去做的就是第三阶段的 接口框架、工具研发

    🐬 接口测试的不简单之处

    接口测试不仅仅是调用之后就结束了,完整的接口测试也需要考虑到很多的点。参考下图:



    比如上图中的内容,除了正常的情况之外,还需要考虑异常的情况(即参数不符合条件的情况);然后就是边界的问题,如一个转账功能,单笔上限为 50000,尝试传入大于 50000或者为0、为负数的情况等等;再一个就是参数组合,比如个人信息认证接口需要传入用户的个人信息,这里手机号为空,性别不选、年龄写999999… 这样的类似的参数的形态造成的一些异常问题…

    还有一种异常情况就是图中左上角提到的一些问题,比如同样的内容去提交会给予一个什么样的返回;还有就是并发的问题,比如某秒杀或者抽奖活动,当大量的信息同时涌入会不会处理不了,造成卡住或者服务崩掉等情况… 那这样的话,这次的抽奖应该做什么处理并返回,是不算了呢还是给予一个重新抽奖的机会,等等诸如此类的场景…

    再有一个就是安全测试,如果说提供了一个网页的接口来填写信息是否会存在被注入等风险,或者有一些敏感信息被攻击者可利用的可能,这些都是在接口测试的过程中需要想到的。

    🐳 如何掌握接口测试

    如果想要掌握接口测试这门技能,做到一个测试开发的级别还需要做些什么呢?这也是要在 【 Python自动化测试实战篇章】 要讲到的内容。

    • 1、首先要了解 TCP 、HTTP 协议
    • 2、虽然大家可能以前接触过一些接口测试,但对 HTTP 还不是太了解,所以在实战开始伊始会简单的介绍一下 HTTP ,包括请求、响应的格式、如何去抓包等等…
    • 3、接下来就会学习如何通过 Python 来发送 HTTP 请求,并且结合着单元测试的框架设计一个简洁的接口测试框架

    准备好了嘛?接下来就准备开始接口测试的实战之旅吧。



    展开全文
  • 文章目录 1 断言设置思路 2 断言设置实战演示 2.1 响应码断言展示 2.2 验证关键字段值 2.3 正则匹配 2.4 数据库匹配核对 2.5 相关接口辅助验证 在前两篇文章中详细给小伙伴们讲解了一下接口自动化需要做哪些准备...

    作者石臻臻, CSDN博客之星Top5Kafka Contributornacos Contributor华为云 MVP ,腾讯云TVP, 滴滴Kafka技术专家 KnowStreaming


    KnowStreaming 是滴滴开源的Kafka运维管控平台, 有兴趣一起参与参与开发的同学,但是怕自己能力不够的同学,可以联系我,当你导师带你参与开源!

    在前两篇文章中详细给小伙伴们讲解了一下接口自动化需要做哪些准备工作及接口测试场景有哪些,本篇文章是最后一篇,主要分享一下接口自动化测试断言设置思路。如果没有好的断言,自动化用例效果将大大打折扣,甚至是无用的,前期的很多工作都因此浪费。这里我继续结合自身经验,帮助大家梳理一下,希望有所帮助和提升。

    可以看看这个 : https://www.eolink.com/

    PS:
    接口自动化测试实践指导(上):接口自动化需要做哪些准备工作
    接口自动化测试实践指导(中):接口测试场景有哪些

    1 断言设置思路

    这里总结了我在项目中常用的5种断言方式,基本可能满足90%以上的断言场景,具体参见如下脑图:

    在这里插入图片描述
    下面分别解释一下图中的五种思路:

    1) 响应码
    对于http类接口,有时开发人员只是通过设置接口响应码来反应接口是否成功,这时我们的断言就需要检查接口响应码是否符合预期来判断用例是否执行成功。
    2) 验证关键字段值
    一般接口中会设有专门的字段来反馈接口成功与否的信息,比如:msg字段,经常好多接口通过该字段反应后台的处理情况,如果成功会返回成功信息,失败会返回失败原因。这样我们测试时可以直接校验该字段值来判断用例是否执行成功。
    3) 正则匹配
    当一个接口返回内容比较多时,但有一定规则可寻,我们可以借助正则表达式来校验检查。
    4) 数据库匹配核对
    要对一个查询类接口的返回数据进行验证,我们可以采用编写SQL,到数据查询结果,然后将数据库结果与接口返回结果进行核对检查,这样就能比较准确的验证接口返回数据的正确性。
    5) 相关接口辅助验证
    举个例子,比如测试一个删除接口,删除了一条记录后,如何验证接口真的把记录删除成功了,可以再调用查询接口,检查被删除的记录是否真的查询不到了,那就说明删除真的成功了。

    2 断言设置实战演示

    基于上面的断言思路,接下来,我通过实际例子给大家做一下展示,这里通过两种平台工具来展示,一种是开源好用的Jmeter;另一种是之前给大家推荐的eolink平台,eolink平台因为支持自定义脚本,且平台提供了很多内置函数,也可以像Jmeter一样灵活实现上述5种断言思路。
    下图展示一下eolink平台的自定义脚本功能:

    在这里插入图片描述
    在这里插入图片描述
    更多内置函数可以参考:https://help.eolink.com/#/tutorial/?groupID=c-806&productID=23

    2.1 响应码断言展示

    如果一个接口需要通过接口请求的响应码来断言,判断是否达到预期结果,Jmeter工具的实现如下:

    在这里插入图片描述
    在这里插入图片描述
    说明:

    该用例会返回400的错误码,断言设置校验响应码是否为400,如果等于400表示用例执行成功,否则失败。

    再展示一下用eolink的实现效果

    在这里插入图片描述

    2.2 验证关键字段值

    如果一个接口需要通过响应结果中出现某个关键词来判断是否达到预期结果,可以采用验证关键字段值的断言方式,用Jmeter工具实现如下:

    在这里插入图片描述

    说明:
    该用例通过检查接口返回字段msg的值是否为“您没有登录,请重新登录”来判断用例是否执行成功。

    再展示一下用eolink的实现效果:

    在这里插入图片描述

    2.3 正则匹配

    如果一个接口返回的响应结果是不断变化的,但结果符合某个预期的规则,这时可以采用正则匹配的方式来断言,用Jmeter工具实现如下:

    在这里插入图片描述
    说明:
    通过正则匹配,除了验证某个符合预期规则的字段值,可以用于匹配检查接口返回样式,匹配成功了,说明用例执行通过。

    再展示一下用eolink的实现效果:

    在这里插入图片描述

    2.4 数据库匹配核对

    针对一个查询类接口,如果想详细验证返回结果的各个字段,可以采用数据库匹配核对方式来断言,用Jmeter工具实现如下:

    在这里插入图片描述
    在这里插入图片描述

    说明:
    对于一个查询类用例,通过查询数据库,然后将接口返回结果与数据库返回结果进行对比,对比成功说明用例执行通过。

    再展示一下用eolink的实现效果:

    在这里插入图片描述

    执行结果:
    在这里插入图片描述

    2.5 相关接口辅助验证

    很多接口的验证需要依赖其他相关接口来判断,实现起来会稍微复杂些,但断言效果非常好,先用Jmeter工具给大家展示一下:

    在这里插入图片描述

    说明:

    对于部署接口是否成功的验证,我这边通过“查看部署日志”接口来辅助验证,当部署日志接口中获取到部署成功日志打印后,就说明用例执行通过。

    再展示一下用eolink的实现效果:

    1)有两种方式,一种步骤中添加相关接口,提取相应内容,后续做判断。

    在这里插入图片描述

    在这里插入图片描述

    2)再一种就通过JS脚本来维护多个接口,并处理接口的响应结果,添加断言来实现。

    在这里插入图片描述

    eolink平台有着非常丰富易用的功能,帮助项目团队更好的对API接口进行管理和测试,最后,再补充介绍一下该平台对于API接口测试方面的某系高级功能:

    1)与API文档关联与自动同步

    在测试用例中,绑定API文档之后,当API发生变化时,您可以一键将文档内容同步到测试步骤中,减轻维护用例的成本。想了解更多,可以参见:https://help.eolink.com/#/tutorial/?groupID=c-752&productID=23

    在这里插入图片描述

    2)0代码,拖拉拽完成测试流程编排

    平台支持拖拉方式进行复杂多接口链路的场景编排,减轻脚本维护工作量。更多可参见:https://help.eolink.com/#/tutorial/?groupID=c-751&productID=23

    在这里插入图片描述

    3)对数据库进行操作
    平台也支持在自动化用例中添加对数据库的操作,常用于以下场景:

    1. 测试前对数据库插入测试数据。
    2. 清除脏数据。
    3. 查询 API 操作是否对数据库生效。
      …更多可参见:https://help.eolink.com/#/tutorial/?groupID=c-748&productID=23

    在这里插入图片描述

    在这里插入图片描述

    4)定时自动测试
    该平台也支持自动化用例定时执行,减少人为的干预,进一步降低执行成本。想了解更多,可以参见:https://help.eolink.com/#/tutorial/?groupID=c-787&productID=23

    在这里插入图片描述

    在这里插入图片描述

    综合来看,eolink平台功能十分强大,除了能像Jmeter一样灵活实现各类接口场景的自动化测试,还有丰富的API管理、API监控、API市场功能,帮助整个研发团队高效实现API全流程的管控,可以说是非常强大易用的一款API管理测试平台。
    至此,接口自动化测试实践指导三篇文章全部完结,希望测试小伙伴们看后能有所收获,后续要多多实践,才能很好提升自动化测试能力。

    可以看看这个 : https://www.eolink.com/

    展开全文
  • 1、接口自动化的目标 用于项目的 API 层的 HTTP 接口的功能逻辑验证 减少手工测试的工作(回归验证;跨模块的验证) 实现手工验证不能做的验证(如接口涉及大量数据的排序比较) 手工很难充分验证的功能逻辑(如接口...

    一、前言

    接口通俗来讲就是前端和后段之间传输数据的桥梁,注意:不是每一个项目都有接口,一些大型项目是前后端分离的,那么他们怎么实现数据的传递和返回呢?在通俗来讲就是前端和后段都有一个模拟参数数据

    二、接口自动化测试的 "能 "

    1、接口自动化的目标

    • 用于项目的 API 层的 HTTP 接口的功能逻辑验证
    • 减少手工测试的工作(回归验证;跨模块的验证)
    • 实现手工验证不能做的验证(如接口涉及大量数据的排序比较)
    • 手工很难充分验证的功能逻辑(如接口的功能验证涉及大量的数据)

    P.S. 实际项目中,接口自动化的根本目的是什么?
    个人认为是定时跑时,能监控接口,当接口功能失常时,可以及时发现,即发现 Bug。因此,可以使用代码覆盖率来评估接口自动化的完整性,但更重要的是发现问题

    2、接口自动化 Case 用例设计原则

    切记:

    • 不要为了做自动化而做自动化,做的首要目标是问题出现时,能第一时间发现
    • 自动化中的代码覆盖率统计可以作为参考,但不能一开始就为了提高覆盖率,陷入 Case 设计之中

    注意:好的接口自动化 Case 设计,依赖于 Case 设计者的功能理解程度(手工测试的功力)+ 功能覆盖点

    原则:

    1.将手工测试点转换为自动化用例
    Case 设计注意:验证用例通过的标准—参考一个功能点容易出问题的地方。或者说,一个用例的通过说明此功能点一定没问题;反之,一定有问题。

    2.覆盖手工测试不易检查/太浪费时间的检查
    比如:

    • 一个 HTTP 接口设计大量的数据比较的时候
    • 接口的 json 返回不能直接检查功能点是否正确(需要调用另一个接口的 json 来间接验证时)
    • 一个接口的 json 返回需要和其他模块的接口联合” 互相验证 “(需要调用其他模块的接口的 json,两个 json 相互来验证彼此的正确性)

    3.“边缘性” 的功能检查 这里主要指的是回归验证
    如果系统涉及边缘性的功能验证,把此类功能设计层自动化用例

    4.接口验证的程度
    接口的验证:即判断一个接口是否正常的标准。注意:接口参数”合理地“组合

    5.DB 数据更新检查
    (如果有必要)注意从接口的角度检查 DB 数据的更新:

    • 其他系统的数据更新到待测系统 DB 中的数据
    • 每天待测系统由于用户操作更新到 DB 中的数据

    6.接口自动化的数据准备
    关于是否需要为接口自动化,特意在 DB 中准备需要的数据,适需要程度而定。原则:除非必须,否则不用准备。如果不准备数据,无法完成对接口的验证,则自己准备数据即可

    注意:一旦自己准备数据,评估对其他功能验证的影响。确保 DB 中数据量和真实性(模拟的数据需要充足,并且不能和真实数据差异性过大)

    3、接口自动化用例定时跑

    自动化一般会选择每天定时跑。这里需要注意的一点就是定时跑的时间选择

    时间选择上注意几点:
    1)在线上跑时,注意对线上接口的影响(一般要求:线上的回归验证可以随时跑)

    2)如果要检查 DB 数据更新的有关逻辑,注意数据的稳定性 (如用户量少的时候)

    3)在测试时(非生产环境),接口涉及读,写 DB,考虑是否需要定时跑

    三、接口自动化测试的 "不能 "

    首先,接口自动化不是万能的,总有覆盖不到的时候。知道自动化的”不能“之处,才能更好配合手工测试出问题

    自动化的 ”不能“ 之处如下:
    1)HTTP 接口突然出现压力问题(前期的压测)

    2)Web 层面的手动测试 (新功能上线后,对原有功能回归时,仍需要接口自动化验证接口,手工测试 Web 页面功能)

    3)异常情况(如需要第三方 API 挂掉/超时的场景)

    1、接口自动化之难点

    1)实现变动 vs 维护的工作量 vs 检查的详细程度

    检查详细程度:自己和自己比;自己和同类接口同一指标比较(因为口径不一致,或者内部实现变化,需要后续维护)

    经验:自己和自己比,扩展和兼容性比较好(动态参数 + 完成功能检查);而自己和别的接口比 看需求而定(接口提测前后 数据准确性检查比较参考);

    P.S. 小的点,执行时间和执行频率

    用途:发现功能失常,功能不可用;

    2)接口监控 —— 执行时间和执行频率

    • 检查详细程度 vs 执行时间和执行频率 (只能和自己)
    • 检查详细程度 vs 经常频繁报警(一个接口怎样算是正常的,返回非200+功能正常)

    3)数据报表
    数据的正确性:统计口径(业务方的口径+多个接口/模块口径的差异后导致业务方不一致)

    2、接口自动化之痛点

    痛点当然源自难点:

    • 当接口本身实现频繁变动、对接口的检查太过详细、开发修复缓慢时,那么不停的报警将会来了
    • 不合理的自动化设计及维护方案,造成自动化成本大于自动化收益时,接口自动化就变得无足轻重了

    实际项目中的体会是:为了自动化而自动化。特别测试场景过于复杂时,当自动化实现成本远大于手工测试成本时,就没有必要非去自动化测试了

    相对于UI自动化而言,接口自动化具有更大的价值

    为了优化转化路径或者提升用户体验,APP/web界面的按钮控件和布局几乎每个版本都会发生一次变化,导致自动化的代码频繁变更,没有起到减少工作量的效果

    而接口一旦研发完成,后期重构/大幅度修改的频率则比较低.因而做接口自动化性价比还是很高的,对于迭代版本旧有功能的回归,beta测试,线上回归都能起到事半功倍的作用


    展开全文
  • 接口自动化介绍

    千次阅读 2022-03-16 16:47:27
    一、自动化测试 众所周知,自动化测试已经成为软件项目中不可或缺的测试方法。基于用户交互界面(GUI)的自动化测试方法具有模拟用户行为和过程可视化的特点,因此受到了广大入门自动化人士的喜爱。诸如:QTP、...
  • 接口自动化测试框架

    千次阅读 2022-03-26 21:15:27
    本文介绍一个接口自动化测试框架。 Python+unittest+requests 实现结果:读取Excel接口测试用例并执行,输出测试报告。 框架脑图 如图,各个模块及作用如上。 处理数据库 db_funcs用来处理数据库,实现...
  • jmeter接口自动化

    千次阅读 2022-08-10 17:46:55
    导言:之前我发过一篇jmeter做自动化...按照我的步骤走,你也能掌握用jmeter做接口自动化测试为了方便大家理解,我这里将通过拆分步骤,在将步骤里的内容一个个的通过jmeter上的分解,和实现来帮助大家理解记忆。......
  • Python接口自动化

    千次阅读 2021-12-12 16:38:31
    4 接口自动化 4.1 使用python实现接口自动化 如果不了解接口测试可参考https://ke.qq.com/course/4092904 使用Python的request库实现接口测试: import json import requests #使用session管理: #1.可以自动关联set...
  • 接口自动化框架要搭成什么,里面的内容究竟应该有多少? 这个问题没有标准答案,因为这要取决于你的项目,以及你想要用框架来解决什么问题等多种因素。 当然了,这里也就不展开讨论了,还是回到接口自动化这个点,...
  • 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与...接口测试和接口自动化有什么不同?在这里先不做解答,大家可以带着这个问题去阅读后面的内容,相信自然会得到这个问题的答案。............
  • 接口自动化测试流程

    千次阅读 2021-12-02 19:17:22
    文章目录接口自动化测试的基本流程一、需求分析二、自动化接口挑选三、设计自动化测试用例四、搭建自动化测试环境五、设计自动化执行框架六、编写代码七、执行用例八、测试报告 提示:以下是本篇文章正文内容,下面...
  • 1.按你的理解,软件接口是什么? 答: 就是指程序中具体负责在不同模块之间传输或接受数据的并做处理的类或者函数。 2.HTTP 和 HTTPS 协议区别? 答: https 协议需要到 CA(Certificate Authority,证书颁发机构)...
  • 大家好,从今天开始呢我们将进入到 [Python自动化测试实战篇章] 的学习。在这一篇章主要的学习内容是与 [软件...该篇章主要涉及到三个方向:WEB端UI自动化、API接口自动化、Appium移动端自动化。小伙伴们加油呀。...
  • 面试问题python-接口自动化

    千次阅读 2022-03-24 19:15:08
    1.能够大致讲一下你们接口自动化框架是怎么搭建的吗? 好的,我们采用unittest和ddt数据驱动思想搭建测试框架,(对数据excel读取、yaml配置、Requests接口请求、Re参数化、Pymysql数据库效验、日志等模块实现封装),...
  • pytest接口自动化测试框架搭建

    千次阅读 2022-03-04 20:52:09
    文章目录 目录 ...最近自己也抽时间梳理了一份pytest接口自动化测试框架,因此准备写文章记录一下,做到尽量简单通俗易懂,当然前提是基本的python基础已经掌握了。如果能够对新学习这个框架的同
  • 经过前面的了解,我们现在唯一还需要的就是还缺少一个可视化的测试报告,所以这...在介绍完测试报告时候在顺便总结一下这段时间接口测试自动化的内容,展望一下作为自动化测试、测试研发的未来职业延伸...............
  • 接口自动化平台搭建,TestNG框架下如何进行测试结果的定制化收集。
  • 在第一篇文章中详细给小伙伴们讲解了一下接口自动化需要做哪些准备工作,准备工作中最后一步接口测试用例设计是非常重要的一个环节,用例设计的好不好,直接关系到我们的测试质量,那如何进行测试用例设计呢,这里呢...
  • 接口自动化之操作mysql数据库

    千次阅读 2022-04-06 19:14:10
    接口自动化之操作mysql数据库 在接口自动化测试过程中并不像UI自动化测试一样存在界面可以通过界面数据校验正确性,除了可以通过接口返回的数据校验还可以通过操作数据库校验数据,那么我们该如何做接口自动化...
  • 一、接口测试 前后端及接口测试定义 前端:简单来说,我们在应用程序或者网站页面上看到的所有内容都属于前端 后端:用户看不到的东西,通常是与前端进行数据交互,以及网站数据的保存和读取,主要考虑底层业务...
  • 书承上一章节,现在我们来聊一聊为什么现在的互联网企业迫切的需要大量的自动化测试。 如果有一定的代码基础,在测试领域会有很好的的发展前途。薪资水平呢也会不弱于甚至强于大部分的开发,这也算是很多测试愿意、...
  • 接口自动化测试-接口封装思想

    千次阅读 2021-12-28 13:58:27
     业务流程--1、数据初始  --2、业务用例设计,含多个api形成的流程定义,不要在包含任何接口实现细节  --3、断言 二、测试框架  API对象:完成对接口的封装  1、框架设计  多协议支持,http tcp t..
  • LuckyFrame测试平台是一款由Seagull发起的免费开源测试平台\测试工具,最大的特点是全纬度覆盖了接口自动化、WEB UI自动化、APP自动化,并且支持分布式测试,测试关键字驱动也很大程度上解决了测试同学代码基础弱的...
  • UI自动化测试与接口自动化测试区别

    千次阅读 2022-01-29 18:09:20
    2、接口自动化测试基本流程 (1)模拟发送请求 (1)传入接口数据 (1)获取响应结果 总结:UI自动化就是模拟用户手工操作,获取界面的输出结果 接口自动化就是模拟发送请求,获取响应结果 ...
  • Python接口自动化测试

    千次阅读 2020-11-30 08:37:34
    本书主要介绍如何用Python实现接口自动化测试。全书主要内容包括接口基础、接口手工测试、编程前的准备、用Python处理MySQL数据库、用Python发送HTTP请求、用Python处理HTTP返回包、用Python导出测试数据、接口自动...
  • Python-接口自动化流程(pytest)

    千次阅读 2022-04-18 16:02:04
    二、接口自动化流程 确定业务范围,哪些业务功能的接口可以做自动化 一般来说,比较稳定的业务适合来做接口自动化 确定自动化测试框架 这里使用pytest框架 准备数据—准备接口用例数据 编写接口自动化脚本...
  • 主要来分析一下基于业务场景的接口自动化怎么做。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,290,739
精华内容 516,295
关键字:

接口自动化

友情链接: Digital PLL.rar