当前位置: 首页 > news >正文

自动化测试相关使用

1.统一封装Utils

public class Utils {public static WebDriver driver=null;public static String detailUrl="hhttp://8.137.19.140:9090/blog_detail.html";public WebDriverWait wait=null;public Utils(String url){//调用driver对象driver=createDriver();driver.get(url);wait=new WebDriverWait(driver,Duration.ofSeconds(3));//显示等待,等待元素准备好}/*** 获取驱动对象*/public static WebDriver createDriver(){if(driver==null){//下载驱动WebDriverManager.chromedriver().setup();//添加配置:允许访问所以连接ChromeOptions options=new ChromeOptions();//添加谷歌浏览器配置options.addArguments("--remote-allow-origins=*");//允许访问所有连接//创建驱动对象driver=new ChromeDriver(options);//隐式等待----只等待页面元素driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(3));//等待3S}return driver;}/*** 屏幕截图* str:方法名/类名*/public static void ScreenShot(String str) throws IOException {SimpleDateFormat sim1=new SimpleDateFormat("yyyy-MM-dd");//年月日SimpleDateFormat sim2=new SimpleDateFormat("HHmmssSS");//时分秒String dirTime=sim1.format(System.currentTimeMillis());//文件夹名String fileTime=sim2.format(System.currentTimeMillis());//文件名//图片文件名:路径+文件名称String filename="./src/test/java/images/"+dirTime+"/"+str+"-"+fileTime+".png";File srcFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);FileUtils.copyFile(srcFile,new File(filename));}/*** 销毁driver,关闭浏览器*/public static void quit(){if(driver!=null){driver.quit();}}
}

2.相关使用

LoginPage

public class LoginPage extends Utils {public static String url="http://8.137.19.140:9090/blog_login.html";public LoginPage() {super(url);}/*** 登录页面可以正常打开*/public void checkPageRight() throws IOException {//检查菜单driver.findElement(By.cssSelector("body > div.nav > a:nth-child(4)"));driver.findElement(By.cssSelector("body > div.nav > a:nth-child(5)"));//检查登录框driver.findElement(By.cssSelector("#username"));driver.findElement(By.cssSelector("#password"));driver.findElement(By.cssSelector("#submit"));ScreenShot(Thread.currentThread().getStackTrace()[1].getMethodName());}/*** 成功登录--正确账号密码*/public void LoginSuc(){//先清空driver.findElement(By.cssSelector("#username")).clear();driver.findElement(By.cssSelector("#password")).clear();//检查登录框driver.findElement(By.cssSelector("#username")).sendKeys("zhangsan");driver.findElement(By.cssSelector("#password")).sendKeys("123456");driver.findElement(By.cssSelector("#submit")).click();//登陆成功会进入列表页,以注销差别为例driver.findElement(By.cssSelector("body > div.nav > a:nth-child(6)"));}/*** 登录异常* --用户名、密码各为空或不为空* --用户名、密码各为错货正确* 。。。。。。。。。。。。*/public void LoginFail(){driver.findElement(By.cssSelector("#username")).sendKeys("zhangsan");driver.findElement(By.cssSelector("#password")).sendKeys("56");driver.findElement(By.cssSelector("#submit")).click();//处理警告弹窗(先等待弹窗出现)wait.until(ExpectedConditions.alertIsPresent());Alert alert=driver.switchTo().alert();//切换到弹窗alert.accept();}
}
ListPage

public class ListPage extends Utils {public static String url="http://8.137.19.140:9090/blog_list.html";public ListPage(){super(url);}/*** 检查博客列表表页——三个模块(菜单模块、个人信息、博客列表),展示博客列表**/public void checkBloglIST() throws InterruptedException {//检查是否存在,同时获取相应文本信息//博客标题String titile=driver.findElement(By.cssSelector("body > div.container > div.right > div:nth-child(1) > div.title")).getText();//博客发布时间String pushTime= driver.findElement(By.cssSelector("body > div.container > div.right > div:nth-child(1) > div.date")).getText();//博客内容String content= driver.findElement(By.cssSelector("body > div.container > div.right > div:nth-child(1) > div.desc")).getText();//“查看全文”按钮String button=driver.findElement(By.cssSelector("body > div.container > div.right > div:nth-child(1) > a")).getText();//校验文本assert !titile.isEmpty();//断言assert !pushTime.isEmpty();assert !content.isEmpty();assert button.equals("查看全文>>");//点击查看按钮driver.findElement(By.cssSelector("body > div.container > div.right > div:nth-child(1) > a")).click();Thread.sleep(3000);String jump_title=driver.findElement(By.cssSelector("body > div.container > div.right > div > div.title")).getText();assert jump_title.equals(titile);detailUrl=driver.getCurrentUrl();}
}
EditPage
public class EditPage extends Utils {public static String url="http://8.137.19.140:9090/blog_edit.html";public EditPage() {super(url);}/*** 发布博客*/public void editSuc() throws InterruptedException {//s输入标题(动态生成)//时分秒SimpleDateFormat sim=new SimpleDateFormat("HHmmssSS");String titleTime=sim.format(System.currentTimeMillis());String titleBefore="自动创建博客"+titleTime;driver.findElement(By.cssSelector("#title")).sendKeys(titleBefore);Thread.sleep(3000);WebElement ele=driver.findElement(By.cssSelector("#editor > div.CodeMirror.cm-s-default.CodeMirror-wrap > div.CodeMirror-scroll > div.CodeMirror-sizer > div > div > div > div.CodeMirror-code > div > div.CodeMirror-activeline-background.CodeMirror-linebackground"));
//        new Actions(driver).doubleClick(ele).sendKeys(Keys.DELETE).perform();new Actions(driver).click(ele).sendKeys("自动化输入").perform();driver.findElement(By.cssSelector("#submit")).click();Thread.sleep(3000);driver.findElement(By.cssSelector("#submit")).click();List<WebElement> blogs=driver.findElements(By.cssSelector("body > div.container > div.right > div"));System.out.println(blogs.size());String titleAfert= driver.findElement(By.cssSelector("body > div.container > div.right > div:nth-child("+blogs.size()+") > div.title")).getText();System.out.println(titleAfert+"    "+titleBefore);assert titleAfert.equals(titleBefore);}/*** 异常发布*/
}
DetailPage

public class DetailPage extends Utils {public static String url=detailUrl;public DetailPage() {super(url);}/*** 校验页面加载成功*/public void checkPage(){driver.findElement(By.cssSelector("body > div.container > div.right > div > div.title"));driver.findElement(By.cssSelector("body > div.container > div.right > div > div.date"));//内容//子元素——动态元素---》解决办法父标签不变
//        driver.findElement(By.cssSelector("#detail > p"));driver.findElement(By.cssSelector("#detail"));driver.findElement(By.cssSelector("body > div.container > div.right > div > div.operating > button:nth-child(1)"));driver.findElement(By.cssSelector("body > div.container > div.right > div > div.operating > button:nth-child(2)"));}/*** 测试编辑功能*/public void checkDetailEdit() throws InterruptedException {//更新之前标题String titleBefor= driver.findElement(By.cssSelector("body > div.container > div.right > div > div.title")).getText();driver.findElement(By.cssSelector("body > div.container > div.right > div > div.operating > button:nth-child(1)")).click();Thread.sleep(2000);driver.findElement(By.cssSelector("#title")).clear();Thread.sleep(3000);driver.findElement(By.cssSelector("#title")).sendKeys("自动化测试更新内容");Thread.sleep(3000);driver.findElement(By.cssSelector("#submit")).click();String titltAfter=driver.findElement(By.cssSelector("body > div.container > div.right > div:nth-child(4) > div.title")).getText();assert !titltAfter.equals(titleBefor);System.out.println(titltAfter);System.out.println(titleBefor);}/*** 测试删除功能*/public void checkDetailDel(){driver.get(url);//跳转到详情页driver.findElement(By.cssSelector("body > div.container > div.right > div > div.operating > button:nth-child(2)")).click();//等待弹窗出现wait.until(ExpectedConditions.alertIsPresent());//切换到弹窗Alert alert=driver.switchTo().alert();//取消弹窗alert.dismiss();//删除driver.findElement(By.cssSelector("body > div.container > div.right > div > div.operating > button:nth-child(2)")).click();//等待弹窗出现wait.until(ExpectedConditions.alertIsPresent());//切换到弹窗alert=driver.switchTo().alert();alert.accept();}
}

assert断言

-ea -Dfile.encoding=UTF-8

http://www.dtcms.com/a/516428.html

相关文章:

  • 做移门图的 网站有哪些做招聘网站需要做什么公司
  • TDengine 数字函数 RADIANS 用户手册
  • 做导航网站赚钱企业网站搜索优化外
  • 网站网页设计公司海南省建设执业中心网站
  • 如何解压一个MacOs PKG 安装包修改内容后重新打包
  • Linux 与 Windows:谁更适合 CLI 模式 AI 编程工具?
  • 深度学习(15)-PyTorch torch.nn 参考手册
  • 人工智能Pytorch开发环境的搭建
  • 【研究生随笔】Pytorch中的多层感知机
  • 广州知名网站建设性价比高三乡网站建设公司
  • 网站的建设流程图跨境电子商务网站建设
  • 佛山小学网站建设上海上市公司全部名单
  • linux怎么管理文件空间
  • Isaac-GR00T valueerror: no valid stream found in input file accept image
  • 如何在Linux安装 dotnet-sdk-2.2.207-linux-x64.tar.gz(解压+配置+验证)
  • js图片展示网站wordpress 豆瓣评分
  • 深度学习-175-知识图谱技术之langchain与neo4j的深入剖析
  • JAVA算法练习题day49
  • P1028 [NOIP 2001 普及组] 数的计算
  • centos怎么查看磁盘是机械还是固态
  • 全面掌握 PostgreSQL 关系型数据库,PostgreSQL 介绍,笔记02
  • 自己做网站在线看pdf建立官方网站多少钱
  • 怎么做网站的页眉抖音上做我女朋友网站
  • 感知即安全:安防监控系统的价值重构
  • linux init3 命令行终端模式下连接wifi
  • 上下文工程(context engineering)学习笔记
  • 网站黄页推广软件丽水网站建设微信推广
  • OpenAI推出了支持人工智能的浏览器ChatGPT Atlas
  • 百度不收录网站文章还有哪些数据库网站
  • 学习Java第四十六天——黑马商城MQ入门85~100