自动化测试框架配置
自动化测试框架,即是应用于自动化测试所用的框架。按照框架的定义,自动化测试框架要么是提供可重用的基础自动化测试模块,如:selenium、watir等,它们主要提供最基础的自动化测试功能,比如打开一个程序,模拟鼠标和键盘来点击或操作被测试对象,最后验证被测对象的属性以判断程序的正确性;要么是可以提供自动化测试执行和管理功能的架构模块,如:Phoenix Framework,robot,STAF 等。它们本身不提供基础的自动化测试支持,只是用于组织、管理和执行那些独立的自动化测试用例,测试完成后统计测试结果,通常这类框架一般都会集成一个基础自动化测试模块,如:robot框架就可以集成selenium框架,Phoenix Framework集成的也是selenium框架。
本文将重点介绍Python Unittest、PHP Unit Test、 Junit三款测试框架,以及结合jenkins、TAPD插件进行自动化测试持续集成。
Python Unittest
unittest是Python自带的一个单元测试框架,可在代码中直接导入使用。
简单例子:
import unittest
class TestStringMethods(unittest.TestCase):
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
def test_isupper(self):
self.assertTrue('FOO'.isupper())
self.assertFalse('Foo'.isupper())
def test_split(self):
s = 'hello world'
self.assertEqual(s.split(), ['hello', 'world'])
# check that s.split fails when the separator is not a string
with self.assertRaises(TypeError):
s.split(2)
if __name__ == '__main__':
unittest.main()
PHP Unit Test
PHPUnit是一个面向PHP程序员的测试框架,这是一个xUnit的体系结构的单元测试框架。
PHP 档案包 (PHAR)
最简单的方法是下载PHPUnit的phar文件,它包含了PHPUnit所需要的所有必要组件。
版本依赖
PHPUnit | PHP |
---|---|
4.8 | > 5.3.3 |
5.7 | > 5.6 |
6.5 | > 7 |
Linux
wget http://phar.phpunit.cn/phpunit-5.7.phar
chmod +x phpunit-5.7.phar
sudo mv phpunit-5.7.phar /usr/local/bin/phpunit
phpunit --version
Windows
安装步骤如下:
-
为 PHP 的二进制可执行文件建立一个目录,例如 C:\bin
-
将 C:\bin 附加到 PATH 环境变量中
-
下载 http://phar.phpunit.cn/phpunit-5.7.phar 并将文件保存到 C:\bin\phpunit.phar
-
打开命令行(例如,按 Windows+R » 输入 cmd » ENTER)
-
建立外包覆批处理脚本(最后得到 C:\bin\phpunit.cmd)
C:\Users\username> cd C:\bin
C:\bin> echo @php "%~dp0phpunit.phar" %* > phpunit.cmd
C:\bin> exit
6. 新开一个命令行窗口,确认一下可以在任意路径下执行 PHPUnit
C:\Users\username> phpunit --version
PHPUnit x.y.z by Sebastian Bergmann and contributors.
简单例子:
<?php
use PHPUnit\Framework\TestCase;
class StackTest extends TestCase
{
public function testPushAndPop()
{
$stack = [];
$this->assertEquals(0, count($stack));
array_push($stack, 'foo');
$this->assertEquals('foo', $stack[count($stack)-1]);
$this->assertEquals(1, count($stack));
$this->assertEquals('foo', array_pop($stack));
$this->assertEquals(0, count($stack));
}
}
?>
# 将以上内容保存到test.php中
phpunit test.php
JUnit
目前市面上流行着JUnit5和JUnit4两个版本,以及实际工程中会使用Maven和Gradle,接下来将分别来介绍如何安装和使用。
JUnit4
Maven
-
新建工程JUnit4-starter-maven
-
在src\main\java中新建文件Calculator.java,并复制以下代码到该文件中
public class Calculator {
public int evaluate(String expression) {
int sum = 0;
for (String summand: expression.split("\\+"))
sum += Integer.valueOf(summand);
return sum;
}
}
3. 在src\test\java中新建文件CalculatorTests.java,并复制以下代码到该文件中
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class CalculatorTests {
@Test
public void evaluatesExpression() {
Calculator calculator = new Calculator();
int sum = calculator.evaluate("1+2+3");
assertEquals(6, sum);
}
}
4. 新建pom.xml文件,添加依赖项
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
完整pom.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>junit4-starter-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>${maven.compiler.source}</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- JUnit 5 requires Surefire version 2.22.0 or higher -->
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
</plugin>
</plugins>
</build>
</project>
5. 执行测试命令
mvn clean test
Gradle
-
新建工程junit4-starter-gradle
-
参考maven第二步
-
参考maven第三步
-
新建build.gradle文件,并复制如下代码到该文件。
plugins {
id 'java'
}
repositories {
mavenCentral()
}
dependencies {
testCompile 'junit:junit:4.12'
}
5. 执行测试命令
gradle test
JUnit5
Maven
样例地址:junit5-jupiter-starter-maven