zoukankan      html  css  js  c++  java
  • Python接口自动化

    接口测试框架的形成过程



    --> 流水账式的接口测试脚本
    --> 在编写不少流水账式的接口测试脚本后,发现其中存在大量重复的代码

    思考:

    能不能把公共的操作单独抽离出来,抽象到一个common文件中,在其他文件继承或导入文件进行使用

    如何区分哪些是公共的部分?

    这个概念很大,可以从小做起,一步一步改进

    --> 比如一个项目的接口中,host基本是一样的,可以抽离出来;
    --> 一个接口对应多个用例,不同用例之间只是入参不一样,可以把接口的host和路径抽离出来
    --> 还有比如 一个系统功能比较多,有几十个模块,每个模块也可以分为一部分
    --> 测试环境的切换
    --> 等等,在实践的过程中,多想一想,还有哪些可以抽离的

    一般哪些是公共部分?

    公共部分与非公共部分的边界是什么?
    提供common文件的通用性
    如不写死测试系统,通过传入参数指定测试系统

    加入测试报告

    加入测试报告模块,把测试结果储存在测试报告当中,方便查看而不是都使用print打印

    加入测试驱动框架

    加入unittest或pytest测试驱动框架来驱动各个模块,更好地组织测试脚本

    加入日志

    为了更好地定位和分析问题,加入日志模块

    加入断言

    针对复杂断言,引入jsonpath断言、Xml断言、Xpath断言、hamcrest断言、Json schema校验

    引入POM

    为了更好地区分业务操作,方便脚本维护,引入POM

    引入参数化

    为了应对大数据量测试,引入参数化,YAML、Excel、数据库都可以作为存储测试数据的。

    引入持续集成

    引入jenkins持续集成,自动拉去代码执行脚本

    ......

    不要把测试框架看得太高大上了,不是只有像selenium、appium、httprunner才叫测试框架,你可以从一个简单地测试框架开始做起。

    测试框架是在编写大量测试脚本地过程中不断抽象封装出来地,然后不断完善,是一个循环往复地过程。



    说这么多,要学的这么多,那怎么开始呢???

    1. 流水代码写好,流水代码也可以进行断言,进行关联。测试用例的关键要素是什么(输入以及期望结果),要学一下request模块

    2. 你会发现流水式的代码有很多重复的的内容,那么要封装一个接口,先用函数封装,所以你要学一下函数

    -------------------其实到这里,一个小框架就出来了,你先用着,先用到项目里面去,不要想太多,干就是了----------------

    1. 接着你会发现用函数封装,好像还不太够,可以封装成类,所以你要学习一下类

    2. 封装完类之后,你会发现执行用例不方便,断言不方便,所以你要引入unittest或者pytest框架

    ----------------到这里,你的框架进一步完善了----------------



    真的,坚持到这一步,你已经超过很多人了

    接下来继续完善,也就前面提到那些,封装Rest客户端、封装关键字、数据驱动,加日志,引入jenkins、引入POM等等.



    -----分界线------

    一个病人准备做手术,问医生,我能喝水吗?
    医生:只能一点点
    病人:那我要一杯奶茶

  • 相关阅读:
    Linux Shell 基本语法
    VIM选择文本块/复制/粘贴
    linux vi命令详解2
    SSH命令详解2
    JAVA调用Shell脚本
    scp命令的用法详解
    Java实践 — SSH远程执行Shell脚本
    Remote SSH: Using JSCH with Expect4j
    c++内置函数---7
    c++将引用作为函数的参数---6
  • 原文地址:https://www.cnblogs.com/wwho/p/14468881.html
Copyright © 2011-2022 走看看