2017这一年•有奖征文接口测试之线上测试

Posted FastTest社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017这一年•有奖征文接口测试之线上测试相关的知识,希望对你有一定的参考价值。


接口测试是测试系统组件间接口的一种测试。从形式上来看各种应用程序的API,硬件的驱动程序,数据库系统的访问接口,再到后来的Webservice接口,http rest接口。


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

    我所待的公司测试分为如下几个环境

环境

适用人群

作用

开发环境

前端开发,后端开发

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框架

【2017这一年•有奖征文】接口测试之线上测试


得到了所有的返回列表,发送邮件。主要是python的smtplib框架

【2017这一年•有奖征文】接口测试之线上测试


通过flask框架,将此作为一个http接口,供devops调用


将此脚本与jenkins集成,达到保证能够时时知道接口情况,及时处理目的。设置日程表


通过以上方式,就可完成达到目的。

在实际运用中发现了一个在测试和性能测试环境中未发现的问题,提前发现了一个在生产环境中未建立索引的问题。有三个接口在生产耗时超过了10s,接口直接返回了500.通过分析得出,在DEMO和性能测试环境中的数据量和生产环境的数据量不一致,导致在生产环境中的耗时直接超过了10s,

事实上,还可以通过对比每个版本的返回值,如果v1和v2的返回值不一致,这样就可以快速的判断是否版本问题导致的不一致。

作为一个QA,仅仅从测试环境中测试是远远不够的,还应该从更多的环境中发现更多的问题以及识别风险,可以从源头开始,需求,dev环境;也可以时时监控生产环境,真正做到让所有的人都信任的QA。



派老师点评:这是一篇讲述接口测试之线上测试的文章,作者写了一个小的解决方案来进行线上环境的接口测试,这篇文章从思路到过程都总结的很不错。值得我们进行参考。


发福利啦!   
关注公众号“FastTestClub”并转发公众号任意一篇文章至朋友圈,然后截图给微信号“ shaoshupai123”,就可获得《软件性能测试过程详解与案例剖析电子书


Fasttest社区
加入我们

派老师微信:shaoshupai123



以上是关于2017这一年•有奖征文接口测试之线上测试的主要内容,如果未能解决你的问题,请参考以下文章

性能测试之线上引流测试--让性能测试更真实更丰富

炫“库”行动-人大金仓有奖征文--改造TPCE测试工具dbt5,提升测试结果tpSE

炫“库”行动-人大金仓有奖征文---TPC-E测试工具osdldbt-dbt5编译和测试方法

有奖征文我在51CTO学院学习的这一年

nginx之线上CDN的rewrite规则修改

思否年度有奖征文丨你的 2020 留下了哪些印记?