6月 12

Selenium WebDriver高级用法

掌握selenium初级用法后,来继续深入学习。

选择合适的WebDrvier

WebDriver是一个接口,它有几种实现,分别是HtmlUnitDrvierFirefoxDriverInternetExplorerDriverChromeDriverOperaDriver,除了 InternetExplorerDriver只能在Windows平台运行,其他WebDriver均能跨平台。

如果追求运行速度,HtmlUnitDriver是首选,但是它没有运行界面,不能实时看到运行效果。如果想看到运行效果,可以使用FirefoxDrvier,它会真正打开浏览器,在屏幕上运行,因此我们可以监测页面元素的位置、CSS的值等,但是代价就是速度慢。 继续阅读

6月 06

Jmeter-maven-plugin高级配置之压测结果文件格式

去掉结果中的时间戳

jmeter-maven-plugin插件默认在每个jtl结果文件的文件名中添加时间戳。如果你不想要这个时间戳,可以通过设置<testResultsTimestamp>标签来禁用。样例如下:

            <plugin>
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>1.9.0</version>
                <executions>
                    <execution>
                        <id>jmeter-tests</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>jmeter</goal>
                        </goals>
                        <configuration>
                            <testResultsTimestamp>false</testResultsTimestamp>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

继续阅读

6月 06

Jmeter-maven-plugin高级配置之选择测试脚本

在pom.xml文件中可以指定运行哪些jmx脚本。

运行所有的测试脚本

Jmeter默认运行${project.base.directory}/src/test/jmeter文件夹中的所有脚本,下面是示例。

    <project>
        [...]
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.lazerycode.jmeter</groupId>
                        <artifactId>jmeter-maven-plugin</artifactId>
                        <version>1.9.0</version>
                        <executions>
                            <execution>
                                <id>jmeter-tests</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>jmeter</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        [...]
    </project>

继续阅读

4月 29

使用maven warpath插件合并多module的war包


现在java 项目一般使用maven、gradle等工具来管理jar包、打包、发布。如果一个项目有很多模块,那般是分成多个module,主目录有个parent,负责包含全部的module,然后目录中多个module文件夹,分别依赖parent或者其他module。最近有个项目,项目很久,代码全部放在一起,随着业务拓展变得与越来越庞大,于是其对进行module拆分。

问题

  1. 多个模块可能交叉依赖。
  2. 每个模块可能都会有前台页面的代码,jsp、js等。
  3. maven打包的时候能否war包、jar包一起打。 继续阅读
3月 03

Android兼容性测试工具Spoon

android分布式测试工具。

简介

android众多的版本和机型给android app测试工作带来不小的挑战。Spoon通过将case分布式地执行、将执行结果更友好地展示出来,从而简化android app的测试工作。

Spoon没有开发新的测试框架,而是让已经存在的测试框架更有效。现在的测试框架,一般都是通过测试apk来驱动被测apk,Spoon可以让这些case在多台设备上同时运行。一旦测试结束,Spoon就是生成一份html报表,来展示每台设备上的执行结果。

Spoon会检测到adb devices命令中显示的全部设备,并在这些设备上执行case。所以我们在使用spoon时,可以插入不同的手机、平板、或者不同配置的模拟器。 继续阅读

2月 26

Robolectric进行Android单元测试

测试驱动android开发

在安卓模拟器或者真机上跑测试用例速度很慢。构建、部署、启动app,通常需要花费一分钟或者更久。这不是TDD(测试驱动开发)模式.Robolectric提供一种更好的方式。

可能你一直尝试在java IDE中使用junit或者testng直接跑测试用例,但是一直报java.lang.RuntimeException: Stub!异常。

这个异常是因为在jdk中没有android运行环境。而现在Robolectric这款android单元测试工具,模拟了android sdk中的jar包,可以直接在jvm中运行测试用例,这样就大大节省了时间。一个Robolectric测试用例如下: 继续阅读

12月 20

Jmeter拓展插件(jmeter-plugins)

Jmeter是一款开源的性能测试工具,纯java编写,体积小,功能强大,基本可以满足性能测试需求。另Jmeter还右一系列的插件来增强其功能,插件地址jmeter-plugins.org.插件现在有5个,分别是Standard set,Extras set,Extras with Libs set,WebDriver set,Hadoop set。

Standard Set(标准插件集)

基本的插件,用于满足日常需求。不需要第三方jar包,地址http://jmeter-plugins.org/wiki/StandardSet/. 继续阅读

12月 06

Android Monkey测试

Android中的monkey是对app做界面压力测试的一款工具,它可以向模拟器或者真机发送一系列随机的用户操作事件、或者系统事件。

概述

Monkey是android sdk自带的一款命令行工具,适用于任何android模拟器或者真机。它通过向手机发送一系列的随机事件,来测试手机app的稳定性。

Monkey命令包含一些参数,大体可以分为四类: 继续阅读

12月 05

如何在Root的手机上开启ViewServer,使得HierachyViewer能够连接

关于什么是Hierarchy Viewer,请查看官方文档:http://developer.android.com/tools/debugging/debugging-ui.html。个人理解:Hierarchy Viewer能获得当前手机实时的UI信息,给界面设计人员和自动化测试人员带来极大的便利。写android自动化的时候,能够获取控件的id属性。

在Android的官方文档中提到:
To preserve security, Hierarchy Viewer can only connect to devices running a developer version of the Android system.
即:出于安全考虑,Hierarchy Viewer只能连接Android开发版手机或是模拟器(准确地说,只有ro.secure参数等于0且ro.debuggable等于1的android系统)。Hierarchy Viewer在连接手机时,手机上必须启动一个叫View Server的客户端与其进行socket通信。而在商业手机上,是无法开启View Server的,故Hierarchy Viewer是无法连接到普通的商业手机。 继续阅读
11月 05

Jmeter使用SSL(HTTPS协议)


Jmeter是apache一款开源、小巧的性能测试工具,平时测试web http协议经常使用,其实jmeter同样支持ssl。方法如下:

  • 需要装有目标网站证书的密钥库,即filename.store(文件名随意).这个文件里包含目标网站的证书和自己的密码,这个东西需要我们自己生成,生成方法参见:CloseableHttpClient加载证书来访问https网站
  • 将生成好的filename.store放到随意目录中(比如/home/victor/filename.store)。修改jmeter配置文件,将filename.store路径和自己的密码配置进去,这里以jmeter-2.10为例。 继续阅读