只要用心,一切如此之快乐。曾经觉得此步如此之遥远。。。。简单阐述下感触!
一,个人对于接口自动化理解为:
1、基于数据层面的测试数据自动化测试。
入行测试,面临的第一门知识点,什么边界值、等价类划分、什么特殊数值等,归结到一点为测试数据准备。通过数据验证输出的正确性,曾经大部分时候完全基于界面上的功能测试,重复又重复一步步相同的操作,唯一不同的就是数据的不同,然后核对实际值是否与预期一致。
2、基于业务层面的功能自动化测试。
功能测试无外否是基于设计之初,该功能实现之目的。
3、基于高并发、高请求的健壮性测试。
在大部分公司,用户群体少,使用低频,从未不会发生基于以上问题导致的数据错误。曾经在N多公司之前好像从未对接口进行所谓的并发、高请求测试,基本功能测试以后上线系统好像从未反馈任何问题,开发也从未做过此类校验。(跟个人从事互联网行业时间周期有关,一直做硬件时间较长)。当面对一家公司N多用户、高频使用情况下,发现数据异常、各种疑难杂症时,大部分因素都是由于高并发导致。而且高并发属于常态,在此基础上了解到"幂等性"一说。高并发与高请求测试由需要区分单台服务器与分布式部署测试方式。曾经原以为对高并发与高请求可以完全解决,但是发现分布式部署上面还是会存在异常,后寻求到所谓的分布式部署测试方式(自行写随机方法,利用随机数及比例请求不同的服务器)。
二,知识要领了解
1、jmeter一个强大的工具,基于java语言开发,可以做多无数YY之事(曾经通过jmeter进行电影爬虫之用,设置爬虫条件可以把电影网站的种子全部爬下,然后自动下载到自己的电影挂机下载服务器里面),jmeter需要了解各种组件的使用,jmeter原生函数、第三方jar、class/java(关于.java与class的调用感觉是一个坑,从未实现过,无数次求助开发与自我研究都未搞通)的引用、数据库组件、UI自动化测试组件(WebDriver Sampler)以及其他各种。
2、java知识点,引入包、判断、输出、循环反正大部分都输处理数据、判断业务。JavaScript数据判断与数据处理(有时候Java无法搞定的可以直接引用JavaScript),以及以上的一切好像百度都可以找到现成,关键晓得如何使用。
3、数据库操作语句。查询、插入、新增、修改
三、如何引用于项目。
1、曾经想做做性能,还去研究loadrunner,研究了那么久感觉还是只了解简单的。其实应该说loadrunner的学习应该感谢大学某某菊花哥。
2、曾经也想学习jmeter发现好像难道必须要学习Java然后必须要懂什么的,其实一些学习的动力源于项目及自我要求。
3、工具其实是辅助之用,怎样用取决于自我对应项目的理解,如何简化个人工作流程及工作时间,以及提升工作质量。jmeter不仅可以为自我提高测试之用,还可提高工作辅助之用(开发一些便于自我的小脚本)以及还可以YY之用。
4、关于接口测试最直接使用方式:java写数据产生方法(所谓测试数据)-接口请求-断言(判断预期值是否满足)-数据库查询-java完成业务自动对比。
四、19年最为麻烦的一次实战(写了几百行(才部分业务,哎)就为了一句Log.info,但后面可以测试很方便。其实说麻烦更应该说自我对于jmeter的应用更深层的理解与应用)
项目大致是一个红包业务项目,测试重点主要是红包算法及高并发、高请求以及参数较多的数据组合(若人为测试只能说测试完整要疯,由于隐私问题接口全部打码只提供理论思想
1、整个Jmeter组件组合。测试只需要设置天数即可。
2、写的一个求时间段的有效天数的jar文件(百度加求助完成,代码量太多,这个太麻烦,要求如此必须如此)
3、测试数据准备,分自动时间参数数据及发放数据(发放随时主要是各种满足设计要求的随机数)
4、主键id的判断,判断是否写入成功。
5、算法的校验
6、幸福的Log.info输出,知道成功了。
网友评论