1、修改Login类加入断言;

断言:检查我们操作页面后得到的结果与我们预期的结果是否一致。

2、使用xml文件运行所有的测试类;

Login类写入两个测试用例:

packagecom.test;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;importorg.testng.Assert;importorg.testng.annotations.AfterMethod;importorg.testng.annotations.BeforeMethod;importorg.testng.annotations.Test;public classLogin {

WebDriver driver= null;//调用定位元素的方法

ElementLocation elementLocation = newElementLocation();//在一个方法运行之前运行

@BeforeMethodpublic voidbefore(){

System.setProperty("webdriver.chrome.driver", "E:\\selenium\\chromedriver.exe");

driver= newChromeDriver();

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("登录成功,跳转到首页");//}//输入错误用户名

@Testpublic voidtest_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());

}

}//不输入手机号

@Testpublic voidtest_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());

}

}//在一个方法运行完之后运行

@AfterMethodpublic voidafter(){try{

Thread thread= newThread();

thread.sleep(5000);

}catch(InterruptedException e){

e.printStackTrace();

}

driver.quit();

}

}

创建一个TestSuit.xml文件(名称随便起):

直接运行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();

一直以为是日期的定位元素不对一直修改,最后发现是按钮定位的不正确,但是存在的疑点是:其他内容都能保存成功就日期不行。

selenium java 断言_Java+Selenium+Testng自动化测试学习(三)— 断言相关推荐

  1. selenium java 参数化_Java+selenium 自动化测试【03】-- 数据驱动之参数化

    目录 1.前言 2.读取txt文件实现参数化 3.使用Excel表格参数化 4.使用TestNG.xml文件参数化 5.使用@DataProvider传参 前言 在上一个随笔中,我们已经自动化测试模型 ...

  2. selenium java测试_java+selenium 自动化测试

    在项目上使用自动化测试,是为了跑主流程的回归测试,提高测试效率,在每个测试版本中把主要的精力放在发版内容新增的需求中: 根据项目的功能模块,把业务主流程和使用频率高的功能抽取出来进行自动化测试,作为发 ...

  3. selenium java 滚动条_java+selenium使用JS、键盘滑动滚动条

    本篇文章介绍如何使用JS和键盘对象对页面进行滑动滚动条-------------主要针对java做自动化测试的同学 一:使用键盘对象操作滚动条 //导包 importorg.openqa.seleni ...

  4. selenium java截图_JAVA+selenium 截图操作

    执行自动化测试的时候,我们常常会碰到测试执行失败的时候.但是失败我们不能只看执行失败代码,如果有截图的话,就能很明显直观的看到是哪个地方执行失败. 这里介绍两种方法,一种是selenium工具自带的截 ...

  5. Java+Selenium+Testng自动化测试学习(三)— 断言

    1.修改Login类加入断言: 断言:检查我们操作页面后得到的结果与我们预期的结果是否一致. 2.使用xml文件运行所有的测试类: Login类写入两个测试用例: package com.test;i ...

  6. eclipse占用内存过大_Java性能调优学习(三)-jmap+mat分析内存溢出问题实战

    上一节我们讲了jinfo,jstat,jmap的使用,还简单的讲了下如何使用jmap导出内存映像文件,这次,我们来实战一把内存溢出问题. 环境准备 首先我们先模拟一下内存溢出的场景,以下这段代码在访问 ...

  7. java 时间戳_Java并发编程之CAS三CAS的缺点 及解决办法

    Java并发编程之CAS第三篇-CAS的缺点 通过前两篇的文章介绍,我们知道了CAS是什么以及查看源码了解CAS原理.那么在多线程并发环境中,的缺点是什么呢?这篇文章我们就来讨论讨论 本篇是<凯 ...

  8. java成果_JAVA Web期末项目第三阶段成果

    我们做的系统是一个基于Java web与MySQL的食堂点餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 项目的测试 在系统部署到云服务器之前,已经在本机上进行了部署测试,通过mvn打包生成war文 ...

  9. 自动化测试Selenium java学习

    一.Selenium Java学习网址 Selenium官网:Downloads | Selenium Selenium官方文档:/zh-cn/documentation/webdriver/gett ...

最新文章

  1. 算法设计与分析课程的时间空间复杂度
  2. 通俗易懂,带你了解Kafka
  3. Leetcode70场双周赛-第一题2144. 打折购买糖果的最小开销
  4. 为什么要用动态代理?静态代理与动态代理详解
  5. 【实战 Ids4】小技巧篇:自定义登录页操作
  6. Pytorch(2)-tensor常用操作
  7. Flink入门看完这篇文章就够了
  8. android 学习 解决R.java不能自动生成问题,编译时adb.exe 找不到问题
  9. H5中 video 使用border-radius失效解决方法
  10. android toast_Android Toast
  11. javascript 图解 event对象offsetX, clientX, pageX, screenX, layerX, x区别
  12. 激光打标程序 c语言,激光打标机 - 20160516labview - 源码下载|Windows编程|其他小程序|源代码 - 源码中国...
  13. 163vip邮箱登陆入口,怎么登录163邮箱?
  14. 常见分布的数学期望和方差
  15. Django中related_name作用
  16. android 白色透明度,Android 透明度alpha换算表
  17. 费马大定理+勾股数奇偶规律
  18. 基金定投--1.基金的基础知识
  19. opencv学习笔记—— opencv3 源码文件夹内容
  20. 服装行业ERP选型咨询提纲

热门文章

  1. SAP Spartacus UserService.get方法的调用时机
  2. scss支持的嵌套css规则
  3. 关于jasmine里debugElement.query和fixture.detectChanges的依赖关系
  4. 关于CRM AET table extension是否能够在S4CRM继续使用的问题
  5. SAP Spartacus产品页面的normalizer
  6. 使用SAP UI5 Web Components开发React应用
  7. grant_type为client_credentials和password二者的区别
  8. How to use price determination in Quotation scenario
  9. ABAP GUI Text Edit
  10. SAP CRM IBASE头部字段valid from和valid to的填充逻辑