首页 > 其他 > 详细

接口测试之线上测试

时间:2018-01-09 13:59:44      阅读:267      评论:0      收藏:0      [点我收藏+]

 在说接口测试之前,我们先来探讨整个环境,而在不同的环境中会采用不同的方式进行接口测试。

我所待的公司测试分为如下几个环境
环境
适用人群
作用
开发环境
前端开发,后端开发
1.前后端用来联调适用
2.开发在开发环境进行冒烟测试
测试环境
功能测试人员
1.功能测试人员进行集成测试
2.系统演示
性能测试环境
性能测试人员
性能测试
预发布环境
PM
验收测试
生产环境
客户
适用
基本上QA介入最多的测试还是在测试环境中测试。自动化测试,接口测试报告基本上也是基于此得出。但是实际上对于整个测试来说,实际上是整个环,哪个环节少了都有极大的风险。那么对于生产环境的接口测试应该如何进行呢。
我们先来分析进行生产环境测试的目的
1. 保证线上的接口处于可用,接口没有报错
2. 知晓单个用户访问单个接口的耗时
3. 保证版本发布以后能够快速知晓测试结果
4. 保证能够时时知道接口情况,及时处理
基于此种目的,写了一个小的解决方案来解决达到以上目的。
首先,我们的测试是不能影响线上的数据,不能往生产环境添加脏数据,那么在此种情况下,采用post,put,delete方式的接口我们都不在程序里维护,只维护了采用get方式的接口,这样既不会影响线上的数据也能知晓某些接口的情况。整个解决方案使用的语言是PYTHON,使用到的工具有JENKINS,环境部署主要是在LINUX系统中。
整体思路为,读取csv里所维护的接口,得到url,通过python的requests框架,发送请求,得到返回码和接口耗时,接口返回500和耗时超过1s,判断此case失败。收集到所有的接口,将接口分为成功的和失败,失败的接口标红,成功的接口标蓝,将得到的测试结果给所有的测试组成员发送测试报告。将此程序集成到jenkins中,再在jenkins中设置为每隔一个小时跑一次脚本,每隔一小时可以得到结果。将此脚本写为htttp接口,供devops调用,devops部署脚本完成以后调用此接口,能够立马得到结果。
以下为每一部分的代码实现。
为了使整个程序具有可扩展性,接口的维护都放在了csv文件里,csv格式如下,假设有新的接口需要在生产环境中被检测,只需要往csv文件里添加数据即可。
技术分享图片
读取csv文件,并得到url,desc,发送请求得到返回码和接口耗时,并判断接口测试是否通过。这里主要运用python的csv和request框架
技术分享图片
得到了所有的返回列表,发送邮件。主要是python的smtplib框架
技术分享图片
通过flask框架,将此作为一个http接口,供devops调用
技术分享图片
将此脚本与jenkins集成,达到保证能够时时知道接口情况,及时处理目的。设置日程表
技术分享图片
通过以上方式,就可完成达到目的。
在实际运用中发现了一个在测试和性能测试环境中未发现的问题,提前发现了一个在生产环境中未建立索引的问题。有三个接口在生产耗时超过了10s,接口直接返回了500.通过分析得出,在DEMO和性能测试环境中的数据量和生产环境的数据量不一致,导致在生产环境中的耗时直接超过了10s,
事实上,还可以通过对比每个版本的返回值,如果v1和v2的返回值不一致,这样就可以快速的判断是否版本问题导致的不一致。

 

接口测试之线上测试

原文:https://www.cnblogs.com/susan123/p/8250991.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!