码迷,mamicode.com
首页 > 其他好文 > 详细

接口测试之线上测试

时间:2018-01-09 14:44:47      阅读:1452      评论:0      收藏:0      [点我收藏+]

标签:发布   不一致   成功   lib   line   htttp   基本   you   ffd   

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

我所待的公司测试分为如下几个环境
环境
适用人群
作用
开发环境
前端开发,后端开发
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的返回值不一致,这样就可以快速的判断是否版本问题导致的不一致。

 

接口测试之线上测试

标签:发布   不一致   成功   lib   line   htttp   基本   you   ffd   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!