allure+maven+junit

1. 环境部署

1.1. 安装allure

https://github.com/allure-framework/allure2/releases/tag/2.13.2

  • 下载后解压;
  • 双击执行allure-2.13.2\bin\ allure.bat;;
  • 将allure-2.13.2\bin目录路径添加到path环境变量中;
  • Dos窗口中输入“allure”验证安装。

1.2. 安装maven

1.2.1. 下载地址

https://maven.apache.org/download.cgi

1.2.2. 安装

  • 下载后解压;
  • 将maven/bin目录路径添加到path环境变量中;
  • Dos窗口执行“mvn --version”命令验证安装。

1.2.3. 配置maven本地仓库

  • 在maven安装目录下创建“repository”文件夹;
  • 打开maven\conf\settings.xml文件设置/path/to/local/repo的值为maven/repository目录路径;
  • Dos窗口执行“mvn help:system”验证配置。

1.3. 安装junit

执行maven前在pom.xml文件中配置junit对应的依赖,执行maven时会自动安装junit包到maven本地库。

2. allure使用

allure [options] [command] [command options]

2.1. options

  • –help 打印命令行帮助文档
  • -q, --quiet 开启静默模式,默认关闭
  • -v, --verbose 开启详细模式,默认关闭
  • –version 打印命令行版本信息,默认关闭

2.2. commands

  • generate [options] 生成报告
    -c, --clean 生成报告之前清楚以前的报告,默认关闭
    –config [path] 配置文件路径,将覆盖–profile 和–configDirectory的值
    –configDirectory 命令行配置目录,默认使用ALLURE_HOME
    –profile 命令行配置文件
    -o, --report-dir, --output 生成报告的目录,默认allure-report
  • serve [options] 生成并查看报告
    –config [path] 报告文件路径,将覆盖–profile 和–configDirectory的值
    –configDirectory 报告所在目录,默认使用ALLURE_HOME
    –profile 报告文件名
    -h, --host 指定打开报告的web服务器
    -p, --port 指定web服务器打开报告的端口号,默认为0
  • open [options] 打开生成的报告
    -h, --host 指定打开报告的web服务器
    -p, --port 指定web服务器打开报告的端口号,默认为0
  • plugin [options] 插入报告
    –config [path] 配置文件路径,将覆盖–profile 和–configDirectory的值
    –configDirectory 命令行配置目录,默认使用ALLURE_HOME
    –profile 命令行配置文件

3. maven使用

3.1. maven主要结构

|- src
|- main
    |- java  # 存放被测试包/类
    |- resource  # 存放被测试类的依赖包
|- test
    |- java  # 存放测试包/类
    |- resource  # 存放测试类的依赖包
|- pom.xml  # maven的配置文件

3.2. pom.xml内容介绍

需要的依赖可以到maven prository中央仓库中查找。
地址:https://mvnrepository.com/

<?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>  <!-- Maven版本号 -->
<groupId>com.gmrobot</groupId>  <!-- 所属工程 -->
<artifactId>MavenProject</artifactId>  <!-- 工程名 -->
    <version>1.0</version>  <!-- 工程版本号 -->
	
	<dependencies>  <!-- 添加依赖包 -->
		<dependency>  <!-- 内容在Maven Repository中寻找 -->
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.13</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

3.3. Options

mvn [options] [<goal(s)>] [<phase(s)>]

-am,–also-make 如果指定了项目列表,则构建项目列表中的项目
-amd,–also-make-dependents 如果指定了项目列表,则构建依赖于列表中项目的项目
-B,–batch-mode 以非交互式(批处理)模式运行(进制输出颜色)
-b,–builder 要使用的构建策略的ID
-C,–strict-checksums 如果校验不匹配则构建失败
-c,–lax-checksums 如果检验不匹配则构建警告
-D,–define 定义系统属性
-e,–errors 生成执行错误消息
-emp,–encrypt-master-password 加密master安全密码
-ep,–encrypt-password 加密服务密码
-f,–file 强制使用备用pom文件(或带有pom.xml的目录)
-fae,–fail-at-end 当构建失败后,允许未受影响的构建继续
-ff,–fail-fast 构建一旦失败,则停止后续所有构建任务
-fn,–fail-never 无论结果如何,都不返回构建失败
-gs,–global-settings 全局设置文件的备用路径
-gt,–global-toolchains 全局工具链文件备用路径
-h,–help 描述帮助信息
-l,–log-file 存放所有构建输出的日志文件(禁止输出颜色)
-N,–non-recursive 不要递归到子目录
-npr,–no-plugin-registry neffective, only kept for backward compatibility
-npu,–no-plugin-updates Ineffective, only kept for backward compatibility
-nsu,–no-snapshot-updates Suppress SNAPSHOT updates
-ntp,–no-transfer-progress Do not display transfer progress when downloading or uploading
-o,–offline Work offline
-P,–activate-profiles Comma-delimited list of profiles to activate
-pl,–projects Comma-delimited list of specified reactor projects to build instead of all projects. A project can be specified by [groupId]:artifactId or by its relative path
-q,–quiet Quiet output - only show errors
-rf,–resume-from Resume reactor from specified project
-s,–settings Alternate path for the user settings file
-t,–toolchains Alternate path for the user toolchains file
-T,–threads Thread count, for instance 2.0C where C is core multiplied
-U,–update-snapshots Forces a check for missing releases and updated snapshots on remote repositories
-up,–update-plugins Ineffective, only kept for backward compatibility
-v,–version Display version information
-V,–show-version Display version information WITHOUT stopping build
-X,–debug Produce execution debug output

3.4. 常用命令

  • maven clean
    对项目进行清理,清理的过程中会删除删除target目录下编译的内容。
  • maven compil
    编译项目源代码。
  • maven test
    对项目的运行测试。
  • maven packet
    可以打包后的文件存放到项目的 target 目录下,打包好的文件通常都是编译后生成的class文件。
  • maven install
    在本地仓库生成仓库的安装包可以供其他项目引用,同时打包后的文件存放到项目的 target 目录下。

4. junit使用

要安装junit只需要将junit的依赖添加到maven的pom.xml文件中即可,maven工具会自动下并安装到本地仓库。

4.1. 常用注解

  • @Test
    将一个方法标记为测试方法;
  • @Before
    每一个测试方法调用前必执行的方法;
  • @After
    每一个测试方法调用后必执行的方法;
  • @BeforeClass
    所有测试方法调用前执行一次,在测试类没有实例化之前就已被加载,需用static修饰;
  • @AfterClass
    所有测试方法调用后执行一次,在测试类没有实例化之前就已被加载,需用static修饰;
  • @Ignore
    暂不执行该方法;

4.2. 注意事项

  • 用@test注释的方法会被认为是一个测试用例;
  • 无论测试有没有成功@AfterClass标记的方法都将被执行;
  • 设计测试用例时注意环境的准备和清理动作,保证测试环境可持续使用;

4.3. @Test的一些属性

4.3.1. excepted属性

excepted属性是用来测试异常的,即如果被测试的方法没有抛出异常,测试不通过,抛出异常,则测试通过。
我们在单元测试类中添加异常测试方法:

@Test (expected = Exception.class)
public void testDivideException() throws Exception {
    new Junit_Test_Demo().divide(3,0);
    fail("除数为零没有抛出异常...");
}

该测试方法是(expected = Exception.class)和fail(“除数为零没有抛出异常…”),会检查是否抛出Exception异常(也可以检查其他异常)。如果抛出异常测试通过,没有抛出异常测试不通过执行fail(“除数为零没有抛出异常…”)。

4.3.2. timeout属性

该方法是用来测试性能的,测试一个方法能不能在规定时间内完成。用法和expected一样。

@Test (timeout = 1000)
public void testDivideTimeout() throws Exception {
    new Junit_Test_Demo().divide(6,3);
}

4.4. 代码覆盖率

收集覆盖率,通过Run→Run ‘Junit_Test_DemoTest’ with Coverage,运行结束后,IDEA将会在Projec工具窗口显示每个程序包、类的覆盖率数据,同时在Coverage工具窗和编辑器中也会显示。

5. allure+maven+junit实例

5.1. 使用idea创建maven项目

创建maven工程-1
创建maven工程-2

5.2. 安装junit并测试

5.2.1. pom.xml中添加junit依赖

<dependencies>  <!-- 添加依赖包 -->
    <dependency>  <!-- 内容在Maven Repository中寻找 -->
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13</version>
        <scope>test</scope>
    </dependency>
</dependencies>

5.2.2. 编写Demo类

public class JunitTestDemo {
    // 加法
    public int add(int a, int b) {
        return a + b;
    }

    // 减法
    public int subtract(int a, int b) {
        return a - b;
    }

    // 乘法
    public int multiply(int a, int b) {
        return a * b;
    }

    // 除法
    public double divide(int a, int b) throws Exception {
        if (b == 0) {
            throw new Exception("除数不能为零!");
        }
        else {
            return a / b;
        }
    }
}

5.2.3. 编写Demo测试类

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import static org.junit.Assert.*;

public class JunitTestDemoTest {

    @Before
    public void setUp() throws Exception {
        System.out.println("单元测试开始前相关操作...");
    }

    @After
    public void tearDown() throws Exception {
        System.out.println("单元测试结束后相关操作...");
    }

    @Test
    public void add() {
        assertEquals(8, new JunitTestDemo().add(2,6));
    }

    @Test
    public void subtract() {
        assertEquals(7, new JunitTestDemo().subtract(9,2));
    }

    @Test
    public void multiply() {
        assertEquals(36, new JunitTestDemo().multiply(6,6));
    }

    @Test
    public void divide() throws Exception {
        assertEquals(2, new JunitTestDemo().divide(8,4),0.001);
    }
}

5.3. 执行maven+junit用例

5.3.1. 在idea中设置执行配置

maven工程执行配置

5.3.2. 执行生成结果

点击执行按钮后,会生成target文件,其中surefire-report目录即为执行报告。
idea上执行maven的结果

5.4. 使用allure生成报告

打开cmd窗口,cd到target目录下,执行“allure serve .\surefire-report”生成并查看测试报告。如果生成测试报告时有其他配置需求请参阅allure使用章节。

cmd页面执行allure的结果
allure生成的html报告内容

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pytest是一个用于Python编写的测试框架,它结合了unittest和nose等测试工具的优点,具有简单易用、灵活且可扩展的特点。pytest允许我们使用简洁的语法编写测试用例,并提供了丰富的断言库和丰富的插件支持,方便我们编写高效、可维护的自动化测试脚本。 而Allure是一种生成漂亮报告的测试结果框架,它支持多种编程语言,并提供了美观直观的图表、图标和饼状图,可以展示测试结果的统计数据,以及失败和通过测试的详细信息。通过Allure的报告,我们可以更加直观地查看测试结果,方便问题的定位和分析。 Jenkins是一个流行的持续集成和持续交付工具,它可以帮助我们自动化构建、测试和部署软件项目。Jenkins提供了丰富的插件生态系统,可以与各种测试框架和工具集成,如pytest和Allure。通过与Jenkins的集成,我们可以实现自动化的测试和报告生成,减少了人工操作和提高了测试效率。 因此,结合pytest、Allure和Jenkins,我们可以实现一个完整的自动化测试和报告系统。我们可以通过编写pytest脚本编写测试用例,并使用pytest插件生成Allure报告。然后,我们可以将这些脚本配置到Jenkins中,形成一个定期执行的自动化测试任务。Jenkins会自动运行测试脚本,并生成带有Allure报告的测试结果。我们可以通过Jenkins的UI界面,方便地查看测试结果,帮助我们及时发现和解决问题。 总结起来,pytest、Allure和Jenkins的结合为我们的自动化测试提供了全方位的支持,能够让我们更加高效地进行软件测试,并通过直观的报告帮助我们更好地理解测试结果。这样,我们可以更加准确地判断软件质量,提高软件开发的效率和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值