8月 24

Java读写Excel

Java读写Excel

工作中经常需要对Excel进行读写操作,java操作excel文件比较流行的是apache poi包,excel分为xls(2003)和xlsx(2007)两种格式,操作这两种格式的excel需要不同的poi包。

  • xls格式
      <dependency>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi</artifactId>
          <version>3.11-beta1</version>
      </dependency>
    
  • xlsx格式
      <dependency>
          <groupId>org.apache.poi</groupId>
          <artifactId>poi-ooxml</artifactId>
          <version>3.11-beta1</version>
      </dependency>
    

继续阅读

8月 23

一次数据库误update之后的数据恢复

工作需要,要对数据库(mysql)数据进行对比,写完测试脚本。想在表中修改一条数据,然后运行程序看看效果。正确的sql  update table1 set amount = 100 where id=123;。可是实际情况是没有写where条件,就按下了回车,shell很快返回“******条数据已经被修改”,晕了。还好,我不是DBA,我只有权限动测试库,可是测试库也是十几个人公用的。看了下时间21:30,其他都下班了,不着急自己慢慢搞。 继续阅读

8月 02

WordPress xmlrpc.php暴力破解漏洞

wordpress是很流行的开源博客,它提供远程发布文章的方法,就是使用跟路径的xmlrpc.php这个文件,最近爆出xmlrpc漏洞,漏洞原理是通过xmlrpc进行认证,即使认证失败,也不会被Wordpress安装的安全插件记录,所以不会触发密码输错N次被锁定的情况。因此就可能被暴力破解,如果密码又是弱口令的话,就相当危险了。最简单的解决办法,就是删除xmlrpc.php这个文件。闲来无事,用java写了暴力破解的脚本,其实就是拿着各种用户名、密码去不断调用xmlrpc.phpp这个文件,检测认证结果,很简单。只为娱乐,暴力破解的事情,大家慎重。 继续阅读

7月 30

Selenium-spoon-plugin插件开发

对于web系统的自动化测试,selenium使用比较多,它支持多种语言java、python、C#等,本文中使用java。selenium执行case时,支持截图,代码如下:

File file =  ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(file, new File("screen.png"));

后面用Robotium写android自动化的时候,在github上发现android-spoon这个插件,可以将android自动化运行时的截图生成html报表,提供单机图片预览,多机图片比较等功能。于是想到也可以用到selenium上。初步做了实现,后续逐步改进。现在实现的功能有:

  • html浏览单独浏览器上case执行中的截图
  • 预览单个case截图的gif动态图
  • 查看case执行过程中日志(使用log4j)

继续阅读

7月 28

Java生成动态GIF图片

写selenium自动化时,为了查看运行效果,后给浏览器截图,想到可以生成gif图片来快速预览。看到已经有人实现了,直接拿过来。作者是Kevin Weiner

共涉及到三个java文件,分别是NeuQuant.java,LZWEncoder.javaAnimatedGifEncoder.java,有了这三个文件,我们可以自己编写方法调用

chrome_com.yeetrack.selenium.test.BrowserTest_baiduTest

继续阅读

7月 19

新建code review请求

一个code review请求,至少包括”summary”,”description”, 一些”reviewers”。一个code review请求通常包含diff文件,如果code review请求中只有附件,那个这个diff文件就更有用了。

有两种新建code review请求的方式:通过web界面或者使用rbt post工具。推荐使用后者。

使用rbt post新建code review请求

继续阅读

7月 15

Review board整合ldap

Review board是个免费的code review平台,安装简单,功能强大,支持svn、git,并且它支持多种认证方式。
Review board已经支持ldap登录,我们需要做的就是一些安装、配置工作。首先review board需要python-ldap,如果没有安装,我们在打开ldap配置页面,就会提醒LDAP authentication requires the python-ldap library, which is not installed.

python-ldap下载地址https://pypi.python.org/pypi/python-ldap/,下载完成后,安装 继续阅读

7月 14

Httpclient MultipartEntity is deprecated

HttpClient是apache提供的很方面的java http客户端,它可以模拟浏览器发送请求,get、post、head等。我们在提交post表单时,表单中如果需要上传文件,那么表单的类型一般是**enctype=”multipart/form-data”,HttpClient也提供这种方法,需要用到http-mime.jar这个包。

MultipartEntity mutiEntity = newMultipartEntity();
File file = new File("d:/photo.jpg");
mutiEntity.addPart("desc",new StringBody("你好吗?", Charset.forName("utf-8")));
mutiEntity.addPart("pic", newFileBody(file));

httpPost.setEntity(mutiEntity);

在比较新的httpmime包中,MultipartEntity这个类已经不推荐使用了,推荐使用下面的方式 继续阅读