python接口自动化测试实战 ( 第一章 )

作者: 6780441d2bcc | 来源:发表于2019-07-02 14:31 被阅读449次

    接口自动化测试实战

    这是一个从0到1的过程,一步一步搭建的测试接口框架,本教程从开始写框架的思路,和实现过程深入解析,并且深入到了每个相关的的各个细节,不论你是刚入门的菜鸟,还是一个懂编码经验的工程师,相信本系列的文章都会对你有所帮助。
    你即可以学到从0到1搭建自动化的编码思想,也可以改变成一个接口自动化工具,在需要的时候可以自己更改代码和维护。

    你可以收获什么?

    1.完善python基础和编程思想
    2.有一个设计测试框架思维
    3.提升自己能力,在也不怕面试没有编码经验
    4.一个可以拿出手的项目,简历中的一个亮点
    5.干货分享相比搜索到各种知识,这篇文章或许略有难度,但收获一定是你想不到的

    我们的设计思想如下:

    • 语言:python3.7
    • 请求:requests
    • 测试报告:allure测试报告和Excel测试报告并邮件发送测试报告
    • 维护:只需要维护Excel表格,表格执行python代码
    • 兼容性:向后兼容性强,可以在接口自动化完善的基础上增加 web ui app ui 自动化测试

    框架支持如下功能:

    • 支持成千上万条接口用例进行测试(经过测试中配电脑,3分钟执行完成5000条接口测试)
    • 详细的Excel测试报告和美观的allure报告输出(这里能让你掌握自定义allure报告)
    • 支持不同类型上传文件(base64,file)上传文件格式
    • 本框架采用多线程和单例等设计模式,代码简单而简约适合初中级学者,使用学习
    • 摆脱普通的测试框架和断言框架的约束,他们能做到的我们一样也可以,学习简单~

    接口自动化篇:

    接口自动化第二章之-封装读取excel工具类
    接口自动化第三章之-读取elemen表格数据
    接口自动化第四章之-读取用例表格数据
    接口自动化第五章之-封装requests请求增加log日志类
    接口自动化第六章之-返回结果和预期结果进行格式对比
    接口自动化第七章之-完善框架结构,增加allure测试报告
    接口自动化第八章之-结合jenkins持续集成

    接下来详细介绍工具的如何使用!!!

    1.分两个Excel来控制脚本,第一个我们取名为elements.xlsx,第二个取名testcase.xlsx
    element.xlsx主要是管理接口的ip和链接,方便后面增加ui自动化存放元素:
    elements.xlsx
    • key:代表的接口名字(不能重复的哦,唯一表示名字)
    • type:接口的请求类型(如post,get等等)
    • value:是接口的链接(是接口后面的链接哦,如/webapi这种)
    testcase.xlsx主要用于管理测试步骤和测试数据等:

    testcase的表格设计如下:

    testcase.xlsx
    testcase.xlsx

    下面介绍用例表的写法~~~

    用例编号:用例表示这条用例的id
    用例标题:这条用例是做什么的
    前置条件:写skip即可跳过这个用例
    测试功能点:见名知意,要测试的什么功能
    测试步骤:按照顺序进行排列,依次写入步骤即可(不会根据步骤进行测试,根据写的用例顺序)
    操作:进行接口测试 还是其他操作 目前只需要写API即可(后面支持ui等操作)
    测试测试支持等待时间和选择上传文件的格式等:
    • 1.格式为json格式,如果需要传入的参数是header,咱们就可以这么写:headers={'key':'value'},如果是body等参数就写:parmars={'phone': '', 'type': '1'}

    • 2.参数支持调用python代码,parmars={'phone': '<b.create_phone()>', 'type': '1'}代码执行后会变成parmars={'phone': '155502226XXX', 'type': '1'}生成手机号哦

    • 预期结果:写入你要测试的接口的返回内容,后面跟#号是要进行断言的内容会查看返回的接口里面有没有

    • 3.如果有一条接口执行完成之后,等待的时间怎么写呢?只需要在测试数据最后跟上#等待时间=1,秒数计算的哦,=1就是等待1秒

    • 4.有的同学我要是上传文件怎么办,目前支持base64,file,md5等,只需要将文件放到项目file的目录下,然后在用例中这样写:@files={'swt':'file','<phone>':'<web.jpg>', 'type': '1'},swt是必须要填写的哦,看你要传的文件格式,如果是base64,就写入base64就好了。

      截图~ image
    预期结果:写入你要测试的接口的返回内容,后面跟#号是要进行断言的内容会查看返回的接口里面有没有写法:#('这是我开发的第一个接口','1')
    设计者:见名知意
    步骤结果:会在测试报告里面体现
    备注:可以备注接口的一些信息等
    接下来咱们请求一下看一下测试报告等信息
    两条接口测试通过的,测试完毕后,会将测试报告通过邮件的方式,发送到邮箱,下期会进行讲解如何使用,代码会在后续进行讲解和贴出
    allur报告,这里只展示了正常情况~错误情况自己去探索哦:
    image
    image
    image
    image
    Excel报告如下:
    image image
    接下来贴出代码结构:
    image
    image
    image
    config:文件内是存储一些常量,比如存入接口的token唯一标识码等,存入代码生成的手机号,方便接口接下来的使用等
    element:里面存放的是接口的相关配置第一个Excel
    junit:生成xml报告,用于allure测试报告展示的数据
    control:
    • autotest.py:初始化数据,解析Excel数据,记录请求过程,生成测试报告
    • common.py:存放公共函数的地方,存放自定义的函数
    • data.py:进行Excel读取的数据,进行重组,得到到可以执行的json结构
    • httpcaps.py:封装请求,记录用例结果,将结果返回至autotest.py
    • junit.py:生成xml测试报告用于展示allure
    • log.py:日志类,将输出的日志写到下面的log文件夹内
    • testcase.py:执行测试用例
    utlis.py:工具类,封装常用的函数
    log:输出log文件,记录log产生的日志
    report:输出excel测试报告
    testcase:用例文件
    httpstart:调用执行用例,是否生成报告和发送邮件等
    如果你想直接获得源码可以加qq群,来一起学习进步。
    接口自动化第二章,开始继续学习吧~

    源码下载地址复制地址打开,不然会没有权限:https://gitee.com/zhangmeng1314/seautotet-public.git

    感谢您的阅读,本人是希望能帮助到想进步学习的同学,大佬勿喷,我会一直维护此项目争取做的更好,我也是一个小白,希望和大家一起成长,第一次写博客文章,大家有意见感觉写的不好不清楚,评论区留言都可以的哦,我会用最简单的方式去解答您的问题,谢谢
    qq群:234922431

    相关文章

      网友评论

        本文标题:python接口自动化测试实战 ( 第一章 )

        本文链接:https://www.haomeiwen.com/subject/trbzcctx.html