寻找一种更快更高效的方法

这两天在对我们开发的模块进行最后的收尾,收尾的工作一般来说都是添加测试用例,测试模块调用时是否有 BUG 等。果不其然,老大还是叫我去做模块的测试。其实还是自己对于 C++了解太少,刚入门一个星期才勉强能够看懂之前的部分源码,而且原有工程十分庞大,还有自己封装好的又或自己开发的工具库。想去调用还得自己上网看看 example 熟悉下,没有 example 的那就苦逼自己慢慢摸索了

做测试没关系,毕竟怎么样都能够学到不一样的知识。

先说下这次测试的内容,就是将之前标注好的数据,利用我们的模块重新跑一遍,检验是否有错漏的地方。这上面说的简单,但其中含杂了大量的人工,这我可不干,所以才有了这一篇文章。

材料准备

404页面错误检验模块(基于 URL 和 Content 两部分),编写爬虫将标注好的数据中 URL 所对应的页面存储于本地(csv文件)

人工方法

如果按照人工方法走,就是针对于一个 URL 创建一个 HTML 文件,然后撰写一个测试用例,跑通了我们就往下走,没跑通那就回头重新梳理逻辑。这种方式如果针对于一两个文件还好说,那如果针对于上百个文件那怎么办?如果这还人工一个个弄,那算你厉害

自动化方法

自动化方法是否能够运用在于在这过程当中是否存在一定的规律,相信读到这里的我们,可以明白自动化的方法就是在若干个循环当中,重复操作人工的方法,只是在这个过程当中,你需要用代码来证明你的想法,而非你的汗水

在材料准备中,我们已经有了包含测试数据的 csv 文件,可能读者会理所当然的认为这个自动化测试不就两行代码妥妥的就搞定吗?其实并不然,c++ 中并没有什么第三方库处理 csv 这样的文件(反正我是没找到),如果利用简单的split函数的话,那就会导致原有数据(HTML)的丢失。

这个时候,我们需要转向文件流,即将若干个 HTML 文件存储下来,并创建一个索引表,记录 URL 与其对应的文件名,如下所示:

1
2
3
4
5
6
~/htmls/
0.html 1.html 2.html index.txt

~/htmls/index.txt
https://www.baidu.com 0.html
https://www.taobao.com 1.html

然后在实际编写代码过程中,先读取索引表,再利用索引表的信息,读取 HTML 文件然后运行模块,记录运行结果,当所有测试用例结束时,统计最终结果,并根据最终结果,调整内部的策略。