由于最近一直比较忙,就没有更新博客。时间长了,一些领悟不记录下来就有些遗忘。闲话少说,今天来更新一篇关于自动化测试中的前后台交互方面的个人心得。
在自动化测试中,不论采用什么测试框架,基本的思路都是前台由测试人员填写测试用例,然后生成测试脚本,然后使用测试工具去run这些脚本。而后台呢,往往是由测试开发人员根据被测对象的需要自己编写程序。至于测试方法,可以将前后台分离进行测试,比如说,对后台进行测试,然后判断后台是否满足测试需求。如果前台测试的目标不需要调用数据,直接run脚本就OK了,如果前台需要后台数据,可以在后台准备好数据,可以将数据放在log日志中,前台直接调用log日志,不需要在后台执行后台程序。这样就保证了前后台测试的分离,便于测试维护,例如前台如果经常变动的时候,只需要根据前台变动将相应的后台数据准备在前台要调用的数据池中。而由于后台程序一般的变动会相应的较少,这样不需要每次更改前台界面都要把后台测试程序进行修改。这种方法也是上次谷歌中国的测试总监推荐的方法。
目前的实践还没有做到完全的前后台测试分离,只是在一步步的尝试,希望距离前后台分离的目的越来越近。对于前后台的交互,目前我的做法是。前台web界面测试由测试人员根据测试对象填写由我们测试开发提供的测试用例模板,然后生成自动化测试脚本。前台界面的一些判断可以直接得到,例如界面的一些改动,界面元素的缺失等。而对于后台的一些验证,目前并没有在后台单独的进行测试。而是由前台的脚本通过调用cgi,将测试预期传给后台,后台cgi函数处理预期值,然后跟实际值进行比对,然后将比对的结果再传给前台由前台处理。举个例子,比如说我的被测对象是一个具有web界面,功能是对交换机进行端口切换的系统。这里,如果我对端口切换这个功能要进行自动化测试设计。那么我的测试工具前台就应该具有驱动界面操作的测试环境,测试后台是一些cgi程序,当前台执行的脚本将端口切换的预期值通过cgi传递给后台时,后台测试程序首先会telnet交换机,获得交换机的当前端口信息,然后与前台传递的预期值进行判断,将判断结果返回给前台日志。
由此可见,与前后台完全分离的测试方法相比,目前我们的做法优点是不需要独立的后台测试,而是从系统测试的角度来判断系统功能。如果要做前后台测试分离,那么前台测试就只对显示的正确与否进行测试,可以在后台数据池准备相应的数据,让前台去访问这些数据然后输出界面,观察输出的数据是否是数据池中的。而后台就对功能进行验证,将功能的结果放于数据池中。这方面目前还没有做尝试,有兴趣的话可以试试。
====================================分割线================================
最新内容请见作者的GitHub页:http://qaseven.github.io/