TestNG(一)之环境的搭建与TestNG方法
工具:安装IDEA 、配合安装JDK1.8;环境搭建。
WebUI环境的搭建
一、Selenium
pom.xml:包括项目会用到的包,可以登录http://mvnrepository.com/或者阿里云maven仓库下载
链接:http://mvnrepository.com/
加到pom.xml文件中
<dependencies> <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.53.1</version> </dependency> </dependencies>
如下图:
然后在底下有一个弹框,选择Auto啥啥啥,就会自己下载。
如果还是失败,那只能再国内下载,在阿里云下载。
二、TestNG
和上面打开饿网页一样,刚才是搜索selenium,现在改为搜索TestNG。
<!-- https://mvnrepository.com/artifact/org.testng/testng --> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.9.9</version> <scope>test</scope> </dependency>
第一讲
五种方法来管理用例
-
其中在每一个test的执行顺序是根据ASC码的最小开始执行的,所以有多个@test的时候,可以用名称test01,test02,这样就可以保证是先执行test01,再执行test02了。
-
test和test直接要保持自己的原始性,不要用test02依附于test01,这样执行test01有问题的话,test01也是跑不通的。所以可以把公共的地方都写在BeforeMethod里面去,最后不要有依附性,如果一定要写的话,就他都写到一个test里面去。
- @BeforeTest:可以用于用例的前置条件,在所有case中最先执行的一个操作,并且这个操作只有被执行一次,并且在全部下来只有执行一次;可以把要测试的用例的的公共的前提条件放在这边
- @AfterTest相对于BeforeTest的就是AfterTest在最后一次执行,并且全部跑下来只有执行一次
- @BeforeMethod这个是在每一条@test中都会先去执行BeforeMethod
- @AfterMethod是在每个test执行之后都会执行一次AfterMethod
- @Test是具体的操作步骤
思考
1.如果是只有运行test01,Run之后得到的预期结果是什么?
2.如果有test01、和test02,单独Run test01、结果是什么?Run整个test结果是什么?
第二讲
校验
通常在比较预期结果的时候,希望达到的一种效果是,如果校验不相等,那么久报错,不要再往下执行。这里就用到了这种方法:相等Assert.assertEquals
下面是定义两个字符串变量,并且进行比较,当a的字符串和b的字符串做比较,如果如果相等,那么就是登陆成功;很明显a是不等于b的,所以报错了;
在下面结果的地方有提示说为什么是错的,有看到Expected:是预期值,就是拿去对比的标准值,Actual:是实际值,实际得到的值是a,所以不相等
跑下面的case没有跑通过,就直接报错了,可以看到下面报错的结果:
为什么所每一个test都不要有关联性,要有自己的原始性呢?如果这个cast是登陆:并且登陆之后是页面添加某个用户,如果是Assert.assertEquals这个都没有跑通过的话,那么接下来的命令是不会被执行到的,所以可能会遗漏执行。我们可以看一下。其实报错之后下面的命令是不会被执行到的,不会是所有命令都执行结束再给出一个结果。所以要注意