我所理解的接口测试——接口自动化测试

发表于:2017-8-31 11:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:大婶N72    来源:51Testing软件测试网采编

  总结我所理解的接口测试,整理接口测试的点点滴滴,只为回首往事时不因虚度年华而悔恨,不因碌碌无为而羞耻。
  一、问题:如何两眼一抹黑的利用python做接口自动化测试
  理解:这个问题,当初我在开始学python,并尝试用python写接口自动化测试时也许遇到,后来我发现以结果为导向,反推需要实现的功能是个很好的方法,先不管实现的好不好,脚本效率高不高,先做出能实现效果的版本。
  二、问题:如何以结果为导向,反推需要实现的功能
  理解:任务是“python+mysql实现http协议的接口测试”,目标是能自动比较结果(包括code和返回包参数完整性)
  分析:要实现这个效果,涉及到的功能点有以下几点:
  1.python对mysql数据库的操作,包括增、删、改、查数据;
  2.python发送http请求;
  3.python处理返回包的结果;
  4.mysql数据库操作,包含sql语句;
  具体实现过程:
  1.mysql数据库表的新建:
  (1).我们需要一类表,存储每个接口的测试用例数据和执行结果的记录,包括的字段有用例级别(BVT,1,2,3)、请求类型(get/post)、接口地址、请求头文件、请求参数、返回包、实际code结果、预期code结果,实际参数集、预期参数集,code对比结果、参数集对比结果、用例状态、创建时间、更新时间、请求时长;
  图1 接口用例case表设计
  (2).配置表,存储一些比较常用、且变化小的参数,比如默认用例级别、接口超时时间等;
  图2 配置表设计
  (3).结果统计表,存储每次执行后,每个接口的结果情况;
  2.python对mysql数据库的操作:
  (1).此处需要预先封装好python对mysql的基本操作类型,网上一招一大堆,可以直接拿来修改使用;
  (2).根据实际情况,在定制一些操作类型,方便外部调用;
  图3 python对mysql数据库操作封装

  3.python发送http请求:
  (1).此处需要封装python本身对http请求的方法,等于再套一个壳子,而这个壳子里面包含了get方法、post方法、url链接有效性方法;
  图4 http请求外层壳
  图5 http请求类型方法
  4.python处理http返回包
  (1).此处可以根据配置来决定对返回包的测试程度,比如有以下3个级别(0-只测试code值,1-返回包参数完整性;2-返回包功能),通过配置值决定需要进行哪些程度的测试
  图6 针对不同的测试程度定义测试
  (2).将不同的测试程度分装到一个类中,分别以方法来定义不同的测试程度
  图7 定义不同测试程度的方法
  (3).将不同程度的测试结果写入数据库测试用例表,即完成一条完整的测试用例数据。
  5.测试结果的统计
  (1).配置不同的统计维度,其对应的不同的统计sql,这样修改起来也比较方便,此处涉及到sql语句的参数化。
  (2).可以配合django使用web页面来展示数据,页面选择不同的展示维度,后台调用不同的统计sql,再将数据展示在页面,或者以表格形式导出。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号