最近组里来了一个新人,为了考核新人的学习能力和,便将新的测试工具hyperpacer作为了考核对象,学习工具,并根据做好的测试方案完成一个简单的性能测试。

在例行考核上,说到学习过程和遇到的问题的时,我问了两个问题:

       第一个是道送分题,就是脚本录制完成后,回放报错,找导师帮忙解决后,脚本回放没问题了。我问:那么问题原因是什么,怎么解决的?结果没回答上来。又追问了一个问题,那就是有没有对比一下原来回放报错的脚本和后来可以正常回放的脚本有哪里不同?其实这就算是一个送分题了。正常来说,如果我有一个脚本有问题,而别人帮我解决了,我要么会仔细问一下原因和解决思路,要么就自己对比两个脚本,看不一样的地方在哪里,然后自己思考可能是哪些原因,然后再自己实证一下。

       第二个问题是道附加题。因此考核的时候,新人说导师给把脚本修改好后,就可以正确的执行了。于是,我就追问了一个问题:你认为怎么才算是一个脚本正确的执行?这其实对于新人来说是一个超纲的题了,新人回答不上来并不会扣印象分。我问这个问题其实也是有意让组内其他人都思考一下,怎么样才算是脚本正确执行?

       一个测试负载模型建立的再好,一个测试方案设计的再完美,如果在落地的时候,脚本执行却有问题,那么前面的一切也都是白搭。所以,问题来了,到底怎么才算是一个脚本正确的执行呢?

       我认为这个正确应该分为两点:一是脚本正确;二是执行正确;

       脚本正确很容易理解,就是你的脚本完全实现了你对应的用例,使用用户、操作步骤、输入数据都与你的用例一般无二;

       而执行正确,我认为至少要分三点:

       1、最基本的一点是脚本执行没有报错;

       2、脚本没有报错并不代表脚本是正确的按照逾期输出,不仅是hyperpacer,对于所有的测试工具来说,只要HTTP的状态码是200它就认为这个请求通过了,而如果在执行过程中系统抛出了一个异常,对于请求来说也是有响应正常返回了,测试工具认为是正确的,但是对于我们的用例预期输出来说,实际上这是失败了,这样也不算是执行正确;

        3、最后一点就是脚本跑并发的时候是按照测试方案设计的模型运行的,即用户数、每个模拟用户使用的参数化数据、处理数据都是按照方案设计运行的。譬如,我们方案设计的是要并发的每个用户都使用不同的用户名,录入不同的数据,如果我们运行的时候所有并发用户都是使用一个用户名,录入的数据也都一样,那么就跟我们方案预期的运行模式不一样,这样也不算是执行正确。

        满足以上三点,我认为才是一个脚本正确的执行了。