1、如何做好WEB前端自动化测试如何做好WEB前端自动化测试测试数据放到txt或者放到excel中,脚本中编写代码可以从文件中读取测试数据我是放到一个类中,数据就是每个类中的变量;总之,测试数据肯定要单独存放数据库的操作现在的WEB应用肯定都离不开数据库,不论是mysql还是oracle;Selenium本身是和数据库没有任何联系的,它只是对浏览器动作的封装,如果想操作数据库,那么就得在脚本中添加这部分的代码什么时候会用到数据库:1、用户某个动作,如购买某一件商品完成时(这部分用selenium去实现),需要检查数据库里是否增加了对应的记录(如支付表中增加一条记录、商品表中数量减少1、订单表增加一
2、条记录等等等等)2、测试类似于注册或需要运行前清理一部分数据时(如果你每次测试注册或者邀请好友奖励的时候,不希望每次都得换新用户去测试,那么在运行前增加清理用户或者清理用户之间邀请推荐的绑定关系记录吧)3、在页面输入某项数据时,例如查询某个订单的状态,订单号只能从数据库中获取该用户的订单号数据库的操作也建议单独写一个模块,便于管理和维护,我在做性能测试的时候就用到过之前自动化测试中的数据库脚本,进行一些操作每个系统的数据库设计不同,从简单到复杂,比较容易遇到的问题就是各种约束,尤其是外键,清理数据的时候非常麻烦(经常遇到想删除一条记录的时候,必须得先清除另外N张表中的数据,这N张表可能还和其他
3、表存在外键关系);如果自己整理不清除的话,建议找DBA多咨询现在用到的数据库,看一下约束简单看一下我写的数据库清理用户数据的脚本浏览器的启动单独写一个类,根据配置文件中的值,来设定启动IE、FIREFOX、CHROME;是否需要利用selenium server进行远程分布式多浏览器测试;浏览器窗口大小;寻找元素的最大WAIT时间而启动的初始化则放在unittest的setup方法中(类似于构造函数,每次用例执行都会执行该方法实例化浏览器),而关闭浏览器则放到teardown中(类似于析构函数)真正的测试脚本真正的描述用户一系列动作、业务流程的脚本,可以在某个模块中加入多个类,每个类就是一系列
4、人为划分的动作,如:注册、登录、支付页面、购买商品、提交商品信息等等为什么叫人为划分呢,其实就是抽象出一些公用的动作,比如要购买商品、发表评价都需要先登录,那登录就肯定要单独写;再比如购买衣服需要支付、购买彩票需要支付,而不论如何支付都是同一个页面,那支付页面输入银行卡用户名密码的这个动作就要抽取出来(如果你一开始没有这样做,把它们全揉在你的其他动作中,强烈建议你开始重构你的脚本,并且在以后有意识的避免这样的问题)下面是一个申请信息发布的脚本,大概有6个页面的多个表单共50项左右的输入项填写unittest测试管理我使用的是pyunit,类似于junit的单元测试工具,测试运行过程中,可以很直观的看到测试的执行情况(eclipse安装pydev插件后自带该功能,这里不再过多解释如何使用unittest,例如如何加载测试用例,如何定义测试名称等等,对了,pyunit自身不支持failfast这个参数,很奇怪)