做测试就是这样,什么都得会,还不能被开发带着鼻子走。
之前做自动化测试,因为沿用别人的框架,不得不在他们的基础上修修补补,先得把任务完成不是。所以,学习了C#,然后使用Nunit框架搭建了新模块的第一个API,能用能测了。但是很不爽啊,为什么非得用开发的语言去做API测试?再加上之前在脑子中构建的测试微服务模式,都得有自己的一套方案。所以,痛定思痛,决定自己用Python搭建一套API测试框架,来满足新服务的测试工作,同时慢慢的把原来的服务都迁移过来。
工作量非常巨大,但总得走出第一步:
- 学习Python,之所以选择Python,正如前一篇文章所说,我们不能被自动化测试的脚本耗掉我们原本就不多的精力,测试人员还应该回归到测试的本职工作上:构造测试数据,构造测试场景,逻辑测试,性能测试等等,花无数的精力在脚本维护上算毛事啊
- 寻找Python自动化测试的基础框架,看了一些,像robotframework,APITestEngine,最后决定跟着ATE来学习,一看就知道是做测试出身的写的,符合测试的一些想法
Python基础几乎为0,从头开始,开发工具选择了Eclipse+pydev,网上教程一堆,不累述。
- 先根据ATE的方法,创建了一个YAML的TestCase,尝试用命令跑通,结果中间出了几次报错,发现很难Debug,觉得ATE应该是被调用,不应该是用来直接执行的,所以,应该由自己搭建运行程序,输入输出由脚本控制,方便Debug。
- 再写新Case时,需要前一个作为Setup的存在,不应该做一个TestCase的方式,因为我不需要其出Pass/Fail的报告,但分开多个yml文件后,文件间的参数传递貌似不通,搞不明白,坚定要自己用脚本传递公共参数。
- yml文件里写Case,需要传递一些通用函数,类似Random ID,Join String等,貌似没法import,显然我之前1和2的想法是必须的。