testNG接口自动化测试的架构

现在市面上做接口测试的工具很多,比如Postman,soapUI, JMeter, Python+ unittest等等,各种不同的测试工具拥有不同的特色。但市面上的接口测试工具都存在一个问题就是无法完全吻合的去适用没一个项目,比如数据的处理,加密方式的选择,业务逻辑的处理等等,因为自己编写一个框架能够很好的契合自己的项目。本次选用Python+ unittest方案。这个方案需要测试者具有一定的代码能力,通过利用Python自带的PyUnit也就是我们说的:unittest自动化框架,进行接口自动化测试框架的二次开发。

  特点:框架稳定,依托于Python强大的库进行各种形式的接口测试,如基于http协议的接口可以利用urlib,urlib2,requests等库进行设计测试。(现在公司的接口基本都是基于http协议的,因此调用这三个库可以完全的实现接口自动化)同时利用JSON库于测试参数进行配置,实现整体测试框架的参数驱动化。

  框架介绍

  整个框架主要分为三层:

  ·框架层:核心层+应用层

  · 核心层:为底层的基础代码

  · 应用层:为核心层的对外的封装

  整个框架结构如上图,console包为整个框架的入口,通过这里来启动整个框架运作。lib和case为框架的核心层和应用层。

  包括:断言方法(resultprocess),权鉴,配置文件,自动生成脚本,测试数据的获取,数据类型的转换,加密的处理,接口测试的初始化,发送邮件,生成测试报告等等。

  case 包里包括server和testcase两个包,server包里面为接口业务串联,testcase为单个接口测试。

  说明:

  1. import unittest  //导入测试框架

  2. 定义一个继承自unittest.TestCase的测试用例

  3. 定义setUp和tearDown,在每个测试用例前后做一些辅助工作。

  4. 定义测试用例,名字以test开头。

  5. 一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。

  6. 调用unittest.main()启动测试

  7. 如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西,这时可以添加-v参

  data数据包:

  log:主要用于存放脚本运行时生成的log文件

  report :用于存放报告文件,为xml文件

  case_data:单个接口测试的数据,为json文件

  server-data :接口业务串联的数据,为excel文件

  case_data 中json数据格式:

  (关于什么是json格式,自己百度

  json数据根据给的上面的这个模板进行配置,注意字段:

  test_list :单个接口的多种状态的测试名称,根据该字段列表中的值进行循环生成py的测试脚本

  expect :断言的数据

  mode  :用于判断断言采用何种模式(具体情况参看lib库里的resultprocess.py文件)

  R : 用于判断是否返回测试数据

  reclye: 用于判断是否循环

  replace_filed: 标识符,用于判断哪个参数需要被替换,主要用于业务串联测试

  server_data 中excel数据格式:

  excel里面的数据根据给的上面的这个模板进行配置,注意字段:

  测试内容 :写业务流程

  测试文件名:表示自动生成的测试脚本的文件名

  测试标题:业务串联测试的用例名

  调用文件:填写需要串联的接口,以“ ,"隔开

  传递字段: 表示下一个接口需要从上一个接口返回的数据中获取的字段内容

  框架使用说明:

  测试人员根据开发提供的接口文档,对于接口的测试点进行完整的分析,编写测试用例,再把测试用例转换成对应的json和excel文档,启动console里面的start_文件,选择对应的测试模式,进行测试。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取  

 

  • 20
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值