不会代码?接口测试照样做!

2017 年 8 月 13 日 StuQ 搜狗测试

来源|搜狗测试(ID:SogouQA)

首先,容小编我说一个很尖锐的问题:业界有很多接口自动化工具,比如postman、jmeter、httpapi、soupUI等。为啥还要自己搞一套框架(造轮子)?

由于在项目中遇到了以下几个问题:

1、对返回的json需要进行层级检查

例如:检查返回的json中date下第五个list中的image的值为ad。

2、对失败case的结果提示能够一眼看出case失败的具体原因。

例如:不是json?返回404?json层级解析失败?json的key不存在?json的value不存在?

3、  后续想方便的扩充功能,以适用不同的项目需求。

例如:支持jsonp返回的json解析,支持protobuf的解析等。

以上三个问题,用业界的通用框架都难以满足需求,所以决定自己写一套框架~

对于框架,我们的考虑是这几方面:


  • 易用性——是否简单上手

  • 通用性——是否通用基本的http接口测试需求

  • 可扩展性——是否方便的扩展功能

  • 易读性——测试结果是否很直接的知道失败具体原因

我们的愿景是这样的~

如何不写代码就可以做接口测试呢?  

你要做的就是:

写excel用例!写excel用例!写excel用例!重要的事情说三遍~~~


 具体用例是什么样的呢?



所以你要做的就是按照excel的字段说明写用例即可~

框架功能


  • 增加可定义post请求和get请求方法,增加header支持

  • 增加返回结果的校验,支持xml、json及纯文本的返回内容检查

  • 增加case可选择性执行,支持Y-正常case、E-异常case、N-不执行case

  • 对xml及json的返回,支持每条case指定key-value对的检查,增加失败原因的提示

  • 支持json层级检查及list的检查

  • 增强返回异常结果的检查,例如空、非200返回

  • 增强对运行结果的统计及提示,支持失败发送邮件提醒。

  • 支持301、302跳转

  • 支持执行所有sheet页的case

  • 支持关联

具体框架是如何实现的呢?且听我娓娓道来~(不想看代码的同学,请直接跳到结尾)

框架介绍  


 

具体的实现流程如下:

main.py:入口函数,指定case文件及sheet页


页跑case,如果有错误发出邮件通知


读取用例采用com组件读取excel的方式

采用这种方式的原因是:

Com组件操作是windows提供的,理论上可以支持所有excel的操作,在这里用到了如果case执行失败,将对应项标红底色的功能。

支持excel和wps,只需要将com组件名称修改即可。


发送请求统一维护在HTTPInvoke(url,requestUri)方法中


通过这个函数可以处理post请求,get请求、302跳转请求。

对返回结果的遍历校验:


依次会校验错误返回码→xml→json→字符串进行校验。

对于错误的结果,发送邮件


友情推荐

需要源码的童鞋,可以扫码加入搜狗测试粉丝群~



登录查看更多
1

相关内容

JSON( Java Script Object Notation)是一种轻量级的资料交换语言,以文字为基础,且易于让人阅读。尽管 JSON 是在 JavaScript 的一個子集,但 JSON 是独立于语言的文本格式,並且采用了类似于 C 语言家族的一些习惯。
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
Python导论,476页pdf,现代Python计算
专知会员服务
254+阅读 · 2020年5月17日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
160+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
84+阅读 · 2019年12月27日
初学者的 Keras:实现卷积神经网络
Python程序员
24+阅读 · 2019年9月8日
Python用于NLP :处理文本和PDF文件
Python程序员
4+阅读 · 2019年3月27日
开发、调试计算机视觉代码有哪些技巧?
AI研习社
3+阅读 · 2018年7月9日
实战 | 40行代码实现人脸识别
七月在线实验室
3+阅读 · 2018年3月7日
用Python调用百度OCR接口实例
数据挖掘入门与实战
16+阅读 · 2018年1月29日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
代码这样写不止于优雅(Python版)
数说工作室
4+阅读 · 2017年7月17日
Arxiv
5+阅读 · 2019年8月22日
Arxiv
5+阅读 · 2018年10月23日
Arxiv
5+阅读 · 2018年5月1日
Arxiv
6+阅读 · 2018年3月19日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
190+阅读 · 2020年6月29日
Python导论,476页pdf,现代Python计算
专知会员服务
254+阅读 · 2020年5月17日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
160+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
【干货】用BRET进行多标签文本分类(附代码)
专知会员服务
84+阅读 · 2019年12月27日
相关资讯
初学者的 Keras:实现卷积神经网络
Python程序员
24+阅读 · 2019年9月8日
Python用于NLP :处理文本和PDF文件
Python程序员
4+阅读 · 2019年3月27日
开发、调试计算机视觉代码有哪些技巧?
AI研习社
3+阅读 · 2018年7月9日
实战 | 40行代码实现人脸识别
七月在线实验室
3+阅读 · 2018年3月7日
用Python调用百度OCR接口实例
数据挖掘入门与实战
16+阅读 · 2018年1月29日
手把手教TensorFlow(附代码)
深度学习世界
15+阅读 · 2017年10月17日
代码这样写不止于优雅(Python版)
数说工作室
4+阅读 · 2017年7月17日
相关论文
Top
微信扫码咨询专知VIP会员