Java+Selenium+Testng自动化测试学习(三)— 断言
1、修改Login类加入断言;
断言:检查我们操作页面后得到的结果与我们预期的结果是否一致。
2、使用xml文件运行所有的测试类;
Login类写入两个测试用例:
- package com.test;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.chrome.ChromeDriver;
- import org.testng.Assert;
- import org.testng.annotations.AfterMethod;
- import org.testng.annotations.BeforeMethod;
- import org.testng.annotations.Test;
- public class Login {
- WebDriver driver = null;
- //调用定位元素的方法
- ElementLocation elementLocation = new ElementLocation();
- //在一个方法运行之前运行
- @BeforeMethod
- public void before(){
- System.setProperty("webdriver.chrome.driver", "E:\\selenium\\chromedriver.exe");
- driver = new ChromeDriver();
- String url = "http://xadev.alsolife.com/";
- driver.manage().window().maximize();
- driver.get(url);
- }
- /**
- * 定位登录界面元素
- * 1.输入正确手机号码
- * 2.输入正确密码
- * 3.登录成功
- */
- // @Test
- // public void test_login1(){
- // elementLocation.findElementByCssClearSendkeys("input[type='text']","15211111111",driver);
- // elementLocation.findElementByCssClearSendkeys("input[type='password']","123456",driver);
- // elementLocation.findElementByCssClick("button[type='button']",driver);
- // System.out.println("登录成功,跳转到首页");
- // }
- //输入错误用户名
- @Test
- public void test_login2(){
- String phone = "153";
- elementLocation.findElementByCssClearSendkeys("input[type='text']",phone,driver);
- elementLocation.findElementByCssClick("button[type='button']",driver);
//加入断言- try{
- Assert.assertEquals(phone,"15211111111");
- }catch(AssertionError e){
- System.out.println( "手机号格式有误:"+e.getMessage());
- }
- }
- //不输入手机号
- @Test
- public void test_login3(){
- String phone = "";
- //输入手机号
- elementLocation.findElementByCssClearSendkeys("input[type='text']",phone,driver);
- //点击登录
- elementLocation.findElementByCssClick("button[type='button']",driver);
- try{
- Assert.assertEquals(phone,"15211111111");
- }catch (AssertionError e){
- System.out.println("手机号不能为空"+e.getMessage());
- }
- }
- //在一个方法运行完之后运行
- @AfterMethod
- public void after(){
- try{
- Thread thread = new Thread();
- thread.sleep(5000);
- }catch (InterruptedException e){
- e.printStackTrace();
- }
- driver.quit();
- }
- }
创建一个TestSuit.xml文件(名称随便起):
- <suite name="TestSuite Demo">
- <test name="TestSuite Demo Test">
- <classes>
- <!-- 执行测试用例的类-->
<!-- name:被执行类的包名
<class>会有多个 -->- <class name="com.test.Login"></class>
- </classes>
- </test>
- </suite>
直接运行TestSuit.xml文件,会执行Login类。
运行结果如下:
内容:
1、TestNG中常用的断言方法:
assertEquals(String actual, String expected) //判断真实值与预期值是否相等,如果不相等测试失败会抛出一个异常
assertEqual(String actual,String expected, Stringmessage) //检查两个字符串是否相等, 如果不相等,测试失败, 且在抛出异常中打印出我们提供的第三个message参数信息
assertTrue(boolean condition) //如果值为true,则用例通过,否则抛出一个AssertionError异常
assertFalse(boolean condition)
2、测试用例的执行顺序,Login类中的两个测试用例:test_login2,test_login3
一般是以字符排序,如果字符相同以数字排序。
说一下之前的问题:
1、之前存日期,一直没有保存成功,原因是按钮元素定位方式不对:
之前的写法:driver.findElement(By.ByXPath.xpath("(//button[@type='button'])[1]")).click();
改正之后: driver.findElement(By.ByXPath.xpath("//button[contains(@class,'submit-infor')]")).click();
一直以为是日期的定位元素不对一直修改,最后发现是按钮定位的不正确,但是存在的疑点是:其他内容都能保存成功就日期不行。
Java+Selenium+Testng自动化测试学习(三)— 断言的更多相关文章
- Java+Selenium+Testng自动化测试学习(二)
Java+Selenium+TestNG自动化测试框架整合 1.简化代码 封装一个定位元素的类,类型为ElementLocation package com.test; import org.open ...
- Java+Selenium+Testng自动化测试学习(四)— 报告
自动化测试报告,在测试用例完成之后系统自动生成HTML报告 使用testng中的报告模板生成报告, 1.在TestSuit.xml文件中配置报告监听 2.运行xml文件 3.自动生成一个test-ou ...
- java+Selenium+TestNg搭建自动化测试架构(1)实现代码和数据的分离
1.主要介绍介绍Java+Selenium+POM的自动化测试框架的搭建,第一个首先实现代码和账号URL等信息的分离.第二点支持跨浏览器,通过读取配置文件的方式实现. 1)将账号URL等信息添加在pr ...
- Java&Selenium&TestNG&ZTestReport 自动化测试并生成HTML自动化测试报告
一.摘要 本篇博文将介绍如何借助ZTestReport和HTML模版,生成HTML测试报告的ZTestReport 源码Clone地址为 https://github.com/zhangfei1984 ...
- java+Selenium+TestNg搭建自动化测试架构(3)实现POM(page+Object+modal)
1.Page Object是Selenium自动化测试项目开发实践的最佳设计模式之一,通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化,只需要调整页面元素封装的代码,提高测试用例 ...
- java+Selenium+TestNg搭建自动化测试架构(2)实现跨浏览器功能
1.切换浏览器类:其中包含了切换浏览器的方法,以及关闭浏览器,设置等待时间,以及重写的断言方法 package com.rrx.framework; import java.io.IOExceptio ...
- java+selenium+testNG+excel 实现 web 网页的自动化测试
webdriver的关键字从excel读取,这样测试人员只需要在excel中填写相关用例即可 前端微站和后台系统的用例可整合在同一excel中,这样可实现前端与后台的闭循环测试 除了一些基本的校验规则 ...
- selenium+testNG自动化测试框架搭建
自动化测试框架搭建 1 Java环境的搭建 1.1访问oracle的官网下载最新版本的jdk http://www.oracle.com/technetwork/java/javase/downloa ...
- Java&Selenium Web自动化测试框架理念
一.自动化测试含义 在自动化测试领域内流传着一个说法:单元测试才是自动化测试的核心,在自动化测试里,无论框架何等完美都不可能脱离单元测试,单元测试将会是自动化测试里最小的单位,把它看作单位一,若干个单 ...
随机推荐
- python下timer定时器常用的两种实现方法
方法一,使用线程中现成的: 这种一般比较常用,特别是在线程中的使用方法,下面是一个例子能够很清楚的说明它的具体使用方法: #! /usr/bin/python3 #! -*- conding: u ...
- PAT (Advanced Level) Practice 1036 Boys vs Girls (25 分)
This time you are asked to tell the difference between the lowest grade of all the male students and ...
- Android 基础知识 -- BroadcastReceiver
BroadcastReceiver 广播,是一种事件传递机制,可以跨应用进行事件传递(系统级). 在使用广播的时候,不宜添加过多的逻辑或者耗时(广播内不允许开辟线程)操作,超过10秒,导致ANR 1 ...
- Burp Suite Professional 针对APP抓包篡改数据提交【安全】
Burp Suite 是用于攻击web 应用程序的集成平台,包含了许多工具.Burp Suite为这些工具设计了许多接口,以加快攻击应用程序的过程.所有工具都共享一个请求,并能处理对应的HTTP 消息 ...
- i春秋公益赛 ezpload
题目思路:一看解出的人比较多,emmm,传个马,命令执行一下.最后读到flag文件. /readflag,可执行. 题对萌新比较友好...... 考点:Linux命令,文件上传,命令执行. http: ...
- vue koa2 mongodb 从零开始做个人博客(一) 登录注册功能前端部分
0.效果演示 插入视频插不进来,就很烦.可以出门右拐去优酷看下(点我!). 1.准备工作 1.1前端框架 前端使用了基于vue.js的nuxt.js.为什么使用nuxt.js? 首先我做的是博客的项目 ...
- itchat 爬了爬自己的微信通讯录
参考 一件有趣的事: 爬了爬自己的微信朋友 忘记从谁那里看到的了,俺也来试试 首先在annconda prompt里面安装了itchat包 pip install itchat 目前对python这里 ...
- 一直报找不到function,然后又不为null。最后发现是个数组。哭死。
今天写代码,报找不到function.然后又不为空.最后发现是类型不对.因为是数组,所以不能用node.function(),而应该用nodeArr[0].function.错用前者会找不到funct ...
- gulp 对js\css进行md5 加密
有的服务器为了网站加载速度,会做服务器缓存,这样就会出现代码出现引用地址没变,新代码不生效,而我们又希望新代码可以及时生效,这样我们就需要避免缓存,当然也有很多方法,本文只介绍使用gulp-rev(对 ...
- 原生js判断设备类型
var u = navigator.userAgent; //Android终端 var isAndroid = u.indexOf('Android') > -1 || u.indexOf(' ...