selenium java 断言_Java+Selenium+Testng自动化测试学习(三)— 断言
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自动化测试学习(三)— 断言相关推荐
- selenium java 参数化_Java+selenium 自动化测试【03】-- 数据驱动之参数化
目录 1.前言 2.读取txt文件实现参数化 3.使用Excel表格参数化 4.使用TestNG.xml文件参数化 5.使用@DataProvider传参 前言 在上一个随笔中,我们已经自动化测试模型 ...
- selenium java测试_java+selenium 自动化测试
在项目上使用自动化测试,是为了跑主流程的回归测试,提高测试效率,在每个测试版本中把主要的精力放在发版内容新增的需求中: 根据项目的功能模块,把业务主流程和使用频率高的功能抽取出来进行自动化测试,作为发 ...
- selenium java 滚动条_java+selenium使用JS、键盘滑动滚动条
本篇文章介绍如何使用JS和键盘对象对页面进行滑动滚动条-------------主要针对java做自动化测试的同学 一:使用键盘对象操作滚动条 //导包 importorg.openqa.seleni ...
- selenium java截图_JAVA+selenium 截图操作
执行自动化测试的时候,我们常常会碰到测试执行失败的时候.但是失败我们不能只看执行失败代码,如果有截图的话,就能很明显直观的看到是哪个地方执行失败. 这里介绍两种方法,一种是selenium工具自带的截 ...
- Java+Selenium+Testng自动化测试学习(三)— 断言
1.修改Login类加入断言: 断言:检查我们操作页面后得到的结果与我们预期的结果是否一致. 2.使用xml文件运行所有的测试类: Login类写入两个测试用例: package com.test;i ...
- eclipse占用内存过大_Java性能调优学习(三)-jmap+mat分析内存溢出问题实战
上一节我们讲了jinfo,jstat,jmap的使用,还简单的讲了下如何使用jmap导出内存映像文件,这次,我们来实战一把内存溢出问题. 环境准备 首先我们先模拟一下内存溢出的场景,以下这段代码在访问 ...
- java 时间戳_Java并发编程之CAS三CAS的缺点 及解决办法
Java并发编程之CAS第三篇-CAS的缺点 通过前两篇的文章介绍,我们知道了CAS是什么以及查看源码了解CAS原理.那么在多线程并发环境中,的缺点是什么呢?这篇文章我们就来讨论讨论 本篇是<凯 ...
- java成果_JAVA Web期末项目第三阶段成果
我们做的系统是一个基于Java web与MySQL的食堂点餐系统 班级: 计科二班 小组成员:李鉴宣.袁超 项目的测试 在系统部署到云服务器之前,已经在本机上进行了部署测试,通过mvn打包生成war文 ...
- 自动化测试Selenium java学习
一.Selenium Java学习网址 Selenium官网:Downloads | Selenium Selenium官方文档:/zh-cn/documentation/webdriver/gett ...
最新文章
- 算法设计与分析课程的时间空间复杂度
- 通俗易懂,带你了解Kafka
- Leetcode70场双周赛-第一题2144. 打折购买糖果的最小开销
- 为什么要用动态代理?静态代理与动态代理详解
- 【实战 Ids4】小技巧篇:自定义登录页操作
- Pytorch(2)-tensor常用操作
- Flink入门看完这篇文章就够了
- android 学习 解决R.java不能自动生成问题,编译时adb.exe 找不到问题
- H5中 video 使用border-radius失效解决方法
- android toast_Android Toast
- javascript 图解 event对象offsetX, clientX, pageX, screenX, layerX, x区别
- 激光打标程序 c语言,激光打标机 - 20160516labview - 源码下载|Windows编程|其他小程序|源代码 - 源码中国...
- 163vip邮箱登陆入口,怎么登录163邮箱?
- 常见分布的数学期望和方差
- Django中related_name作用
- android 白色透明度,Android 透明度alpha换算表
- 费马大定理+勾股数奇偶规律
- 基金定投--1.基金的基础知识
- opencv学习笔记—— opencv3 源码文件夹内容
- 服装行业ERP选型咨询提纲
热门文章
- SAP Spartacus UserService.get方法的调用时机
- scss支持的嵌套css规则
- 关于jasmine里debugElement.query和fixture.detectChanges的依赖关系
- 关于CRM AET table extension是否能够在S4CRM继续使用的问题
- SAP Spartacus产品页面的normalizer
- 使用SAP UI5 Web Components开发React应用
- grant_type为client_credentials和password二者的区别
- How to use price determination in Quotation scenario
- ABAP GUI Text Edit
- SAP CRM IBASE头部字段valid from和valid to的填充逻辑