zoukankan      html  css  js  c++  java
  • <自动化测试方案_6>第六章、API自动化测试

    第六章、API自动化测试

    (一)工具实现

    目前大众接口测试的工具有:Postman、SoupUI、jmeter
    他们的特点介绍有人做个宏观的研究,这里进行引用:
    https://blog.csdn.net/huilan_same/article/details/75413482

    根据文章里的描述可知:
    1,支持的接口类型与测试类型
    功能上Jmeter最为强大,可以测试各种类型的接口,不支持的也可以通过网上或自己编写的插件进行扩展。SoapUI专门针对HTTP类型的两种接口,其初衷更是专门测试Soap类型接口,对于其他协议的接口不支持。Postman更是轻量级,定位也不同,可用来测试Rest接口。

    工具

    接口类型

    测试类型

    SoapUI

    Soap、Rest

    功能、压力、安全

    Jmeter

    Rest、Soap等

    可扩展WebSocket、socket

    功能、压力

    Postman

    Rest

    功能

    2,数据源、生成器、进行参数化

    工具

    数据源

    生成器

    循环

    SoapUI

    DataSource,数据可来源于文件、目录、数据库、Excel、Grid等

    DataGen

    DataSource Loop

    Jmeter

    CSV Data Set Config读取csv文件

    Random Variable

    计数器

    ForEach控制器

    循环控制器

    While控制器

    Postman

    Runner中运行时,可加载CSV/JSON文件

    无(只能通过脚本)

    Runner中的Iteration

    3结果解析、展示:

    工具

    结果

    日志

    报告

    SoapUI

    Project-OverView、TestSuites

    TestSuite-TestCases

    TestCase-TestSteps

    SoapUI全局多种log

    TestSuite log

    TestCase log

    Request log

    Project report

    TestSuite report

    TestCase report

    (PDF/HTML/XML/CSV)

    Jmeter

    各种监听器

    统一的Jmeter log

    监听器可导出到文件

    并可导出JTL、CSV文件、通过插件可导出HTML(Jmeter3自带)

    Postman

    Send可查看Request的Response

    Runner可查看运行的Result

    Postman console

    Chrome DevTools

    Request的Response以及Runner的Result均可导出json

    4团队协作

    SoapUI:本身一个project是一个xml文件,但是可以通过配置变成一系列文件夹,每个Case、每个Suite均是独立的文件,这样可通过svn/git进行团队协作。支持性较好。

    Jmeter:一个TestPlan也是一个jmxxml)文件,无法分割,但Jmeter有一个合并的功能,允许将多个文件合并在一起。只能每个团队成员自己建立一个TestPlan,分功能块进行测试。最后整理合并。

    Postman:有团队协作的功能,需要付费。

    如果选择工具的话,选择的原则:

    1,免费

    2,能够快速学习使用:时间为一周
    3,支持团队合作

    4,支持接口关联

    根据以上四点:
    1SoapUI是开源的,SoapUI pro是收费,功能比前者强大,具体强大在哪里,请看官网介绍:https://www.soapui.org/professional/soapui-pro/soapui-vs-soapui-pro.html
    因为SoapUI的功能开源有限,使用起来也是很麻烦,所以不考虑这款工具
    2Postman没有团队协作功能,该功能需要收费
    不考虑这款工具做接口自动化

    3,jmeter功能强大,支持模块合并可以实现团队协作,且是开源的

    所以如果用工具实现自动化接口测试推荐jmeter

    (二)脚本实现

    脚本实现需要一门编程语言做支撑,根据语言的灵活性和热度,选择Python作为脚本实现的支撑语言

    实现思路:

    1,使用Excel文件管理测试用例

    2,使用requests模块来模拟请求,并接受响应

    3,使用ExcelHTML来展示测试报告

    实现方式:自己编写代码,可集成在Jenkins
    实现时间:首次版本预估1个月

    (三)工具+脚本实现

    1.Python+Postman

    Postman可以使用功能EXPORT COLLECTION 来导出json文件,然后通过Python解析后,使用requests库来发送请求,并进行结果校验,生成报告通过邮件模块发送给相关人员。
    这种方式,接口用例是用Postman来管理
    实现方式:自己编写代码,可集成在Jenkins

    实现时间:2

    2.Postman+Newman+Jenkins

    PostmanAPI自动化测试脚本,用newman命令行运行所有测试案例,配置jenkins来运行API自动化测试脚本,使API达到完全自动化测试!测试用例Postman来管理。

    如何部署:https://blog.csdn.net/chengly0129/article/details/68486016

    实现方式:搭建Postman+Newman+Jenkins

    实现时间:2

    3.Python+Testlink+Jenkins

    使用同行已经实现的框架,框架功能如下:

    源码地址:http://blog.sina.com.cn/s/blog_13cc013b50102w94u.html


    1、框架集成了Testlink,可使用Testlink灵活对测试项目,测试计划,测试用例进行管理

    2、可通过配置文件灵活配置运行模式,支持按测试项目、测试计划、测试套件批量运行执行用例

    3、支持HTTPSHTTPWebService协议,支持POST, GET方法,支持JSON,非JSON数据格式的请求,支持多种形式的数据校验

    4、可自动生成HTML可视化接口测试报告

    5、可根据配置在测试完成后,自动发送测试报告邮件

    6、支持文件、控制的日志打印,可分别控制开关

    7、支持模块化开发

    8、可集成Jenkins自动运行脚本


    特点:测试用例使用Testlink来管理

    实现时间:三周

    (四)选择API自动化测试实现方式

    以上三种方式,选其中一种来实现:


    倾向于工具+脚本实现:Postman+Newman+Jenkins

    实现时间:三周
    原因:
    1,测试组可以统一管理手工用例和自动化用例
    2,可以快速实现,且开发这个框架的作者,能够联系到,使用中出现了问题,可以快速得到解决

    3,使用中想增加功能可以自己修改代码去添加

  • 相关阅读:
    [置顶] Spring的自动装配
    BZOJ2831(小强的金字塔系列问题--区域整点数求法)
    国际跆拳道联盟
    Linux如何查找某个时间点后生成的空文件
    ORACLE中关于外键缺少索引的探讨和总结
    ORA-12514, TNS:listener does not currently know of service requested in connect descriptor案例2
    SQL Server 2005 sp_send_dbmail出现Internal error at FormatRowset (Reason: Not enough storage is available to complete this operation)
    SQL Server数据库邮件发送异常案例
    MySQL二进制日志总结
    OSWatcher使用过程中小问题解决方法
  • 原文地址:https://www.cnblogs.com/1fengchen1/p/9519384.html
Copyright © 2011-2022 走看看