总是能收到这样的问题:
代码语言:javascript复制异步任务如何测试?
异步的接口如何测试?
可以通过自动化来保证异步任务是否执行了吗?
能否保证执行是否成功?
收到这样的问题,其实大家的问题都是通用的,那么正好整理下我的一些观点,供参考。
异步任务如何测试,怎么测试?
其实很简单,我们要想测试这个呢?其实先要了解什么是异步任务?通常用异步任务来做什么?
异步任务其实就是在同步无法满足当前任务,交给异步去执行这些耗时任务,线程不需要阻塞继续干别的事。
那么基于这个,通俗的说法就是同时后台做,前台不耽误继续,
了解我们要测的异步任务是用来干什么的?如何实现?解决业务上的什么问题?
这些我们都可以和我们的技术团队的童鞋进行沟通,了解了做了什么?怎么去实现的?解决的了什么问题?那么我们知道了如何工作,如何实现的,为什么这么做了?那么就是如何测试了,测试的目的是保证技术实现的准确无误。
了解好这三个呢。那么接下来,我们就知道如何测试了?如何测试呢,其实关注于任务的本身。执行了什么?操作了什么?最后什么发生了改变?其实在和技术沟通的时候,他给我们讲解的实现的过程中,很多的实现点,实现过程,就是我们发掘的测试的点。
列举下,通常的异步任务会有下面变化:1.log日志 2.文件的变化 3.数据库的变化 4.redis的变化等。
那么知道了这几方面可以看出来,就可以做一些自动化的支持。
代码语言:javascript复制1.log日志,可以执行接口后,去查看log中是否有输出。
除了可以人工看,也可以通过自动化的去获取log日志的输出去判断是否执行
2. 文件变化 如果文件的操作,那么操作后文件,肯定会有操作,
比如简单的,文件发生了变化后,操作的时间会发变化,
那么我们可以看最新的文件是否事,可以只看对应的时间是否有这个文件,
这样快速的去判断,文件的读写的还可以通过自动化去发现,这些文件是否变化。
3.数据库变化 异步任务操作后,对应的数据会发生变化,
那么我们需要在执行的前面获取对应的数据,调用接口有,观察执行后,
数据是否变化。
4.redis变化,这个合数据库的操作也是类似的,去查看那些数据是否发生变化。
这四个场景,都可以通过自动化的方式去实现,或者让开发提供一些必要的辅助来验证。
其实,很多问题都是通用的,当我们不知道如何去测试的时候。类似的工作如何做?如何测试呢?
很简单三部曲:
1.确定任务目标
2.找到可测方案(沟通)
3.执行测试收集结果。
很简单的三部曲,第二是最难的,需要大量的实践,大量的沟通。对于自己来说,也是很好提升。
如何找到快速的验证的方案,提供解决问题的思路,是对测试工程师能力的一个很好的验证。技术难度大的,我们可以进行拆分一二三,来去实现。
我列举的只是一些点的简单的思路,具体的问题还是需要进行具体的分析。多些实战,才能在遇到问题的时候去寻找一些最佳的方案。