java.lang.OutOfMemoryError: Java heap space + myeclipse

上一篇 / 下一篇  2017-05-27 17:14:43 / 个人分类:selenium自动化测试

File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
 Thread.sleep(3000);
 //截第一张图
 String firstImageName = date.formatDateTime(new Date());
 firstImageName = firstImageName.replace(":", "");
 Log.info(firstImageName);
 FileUtils.copyFile(screenshot, new File("D:\\Screenshot\\"+firstImageName+".jpg"));
 Thread.sleep(3000);
 //截第二张图
 String secondImageName = date.formatDateTime(new Date());
 secondImageName = secondImageName.replace(":", "");
 FileUtils.copyFile(screenshot, new File("D:\\Screenshot\\"+secondImageName+".jpg"));
 //生成两个文件对象,一个是期望图片,一个是实际图片
 File fileInput = new File("D:\\Screenshot\\"+firstImageName+".jpg");
 File fileOutputput = new File("D:\\Screenshot\\"+secondImageName+".jpg");
 /*
  * 以下是两个文件进行像素比对的算法实现,获取文件的像素大小,然后使用循环的方式将两张图的所有项目进行一一比对,如有任何一个像素不相同,则退出循环
  * 将matchFlag变量的值设定为false,最后使用断言语句判断matchFlag是否为true。
  * 如果80%为true表示两张图片一致,如果80%为flase表示两张图片并不是完全匹配
  * 测试标记为失败,邮件通知
  */
 BufferedImage bufileInput = ImageIO.read(fileInput);
 DataBuffer dafileInput = bufileInput.getData().getDataBuffer();
 int sizefileInput = dafileInput.getSize();
 BufferedImage bufileOutput =ImageIO.read(fileOutputput);
 DataBuffer dafileOutput = bufileOutput.getData().getDataBuffer();
 int sizefileOutput = dafileOutput.getSize();
 Boolean matchFlag = true;
 int count = 0;
 if(sizefileInput == sizefileOutput){
 for(int j=0;j<sizefileInput;j++){
 if(dafileInput.getElem(j) != dafileOutput.getElem(j)){
 count = count + 1;
 }
 }
 //是否大于20%都不一样
 if(count > (sizefileOutput * 0.2) ){
 
 //赋予false
 matchFlag = false;
 }
 
 }else{matchFlag = false;}
 Assert.assertTrue(matchFlag,"图片元素发生了改变请检查");
 Log.error("图片元素发生了改变请检查");
在eclipse执行图片比对函数,提示java.lang.OutOfMemoryError: Java heap space
解决方法:
在Eclilpse中修改了启动参数,在VM arguments 加入了-Xms32m -Xmx800m,问题解决。

TAG: java Java

 

评分:0

我来说两句

Open Toolbar