两个完全不搭边的东西怎么说明呢,既然不好说那就不多说,通过例子来理解。
需求我们要实现一个这样的测试情境:
登录系统时,若loginID正确,但密码错误,连续三次密码输入错误后,系统会lock user。
怎么实现呢??
我们先来分析一下,前提是要输入正确的loginID,但loginID我们可能不是很清楚,怎么办?需要连续三次输入,那么要写三个test来依次执行吗,不妨可以先按照自己的想法实现一下。
既然讲复用测试方法,肯定不是要写三个test了。当一个操作经常频繁使用时,我们可以将它抽象出来写成一个方法,然后调用测试方法即可,下面的说明会给出答案。
首先介绍一下将要使用的几个类或测试类。
A.类SetUpDriver,用来初始化和启动IEdriver
B.类ConnectDB—用来连接DB,里面包含getUserName的方法,用来获得loginID。
C.类Login —包含loginSuccess 和loginFailed两个测试方法
loginSuccess(String uname,String pwd)是valid testdata测试-valid LoginID 和valid password
loginFailed(String uname,String pwd,String errorMsgExpected)是invalid test data 测试-invalid LoginID/invalid password
D.测试类LoginLockedTest ,测试三次密码输入错误后lockuser功能
SetUpDriver.class
顾名思义,就知道这个类是用来SetUpIEDriver的,这个类以前都用过了,所以就不多说了。
ConnectDB
下图就是传说的的连接DB,它其实就是Java中的JDBC连接,都是固定的格式,只不过我创建了一个传参方法getUserName(String sql)用来get LoginID,里面的sql是我们自定义的,可以根据实际需要修改。
特别说明一下:
uname = rs.getString(“login”);
上面括号中的 login 是 user表中 的一个字段名称,存放的就是LoginID,也就是我们在登录页面要输入的,当然可以根据需要改为 其它的字段,比如password
Login
下面的截图我只贴出了类中的两个传参方法,定义这两个有什么用?真的,很有用的~
请跳转到LoginLockedTest