持续部署中测试的重要性
持续部署是一种软件开发策略,方法是将应用的代码变更自动发布到生产环境中。 这种自动化由一系列预定义的测试驱动。 一旦新更新通过这些测试,系统会将更新直接推送到软件的用户。很显然这一过程中测试环节是非常关键的,因为全程无人工干预,只有测试环节通过,才能进入下一环节。这里的测试环节是通过测试脚本来实现的(包括:单元测试脚本+接口测试脚本+UI测试脚本),由于持续部署整个流程太过复杂,往往需要专门的团队负责运维,本文只针对测试这一环节进行讲解,注重流程梳理,忽略具体实现细节。
在服务器上配置JDK和 Maven
在要执行测试用例的服务器上(记作A)安装 maven 和jdk,并把二者的安装目录加入到系统的环境变量中。
JDK的作用就不多说了,就是提供Java的运行环境;mave是java的一个依赖管理工具。所谓依赖就是指在Java开发过程中引入的各种jar包和第三方库,而可能这些库本省还要引用其他的库,这样我们直接引用的称为直接依赖,库的依赖称为间接依赖。如果我们手动去引入这些依赖,过程将变得十分繁琐, Maven会为我们管理并引入这些依赖。
利用Maven+junit4创建自动化测试项目
写一个Java 的Maven 自动化测试项目,并拷贝到上一步的服务器A,结构如下:
使用的是Junit4框架
把运行case的执行文件AllTests.java放到了test>com.my.test目录下(这个是junit4的规定,放在maven工程test目录下的测试类会在构建中自动执行), AllTests.java源码如下:
@RunWith(Suite.class)
@SuiteClasses({BaiduTest1.class, BaiduTest2.class})
public class AllTests {
}
java>com.my.testcase目录下 存放的是需要执行的测试用例,这个目录下哪些用例需要被调用由AllTests.java 文件决定
java>com.my.framework 目录下 存放的是自动化架构设计的核心类,目的是让自动化测试脚本执行稳定
备注:这里的测试脚本包括:单元测试脚本、接口测试脚本和UI测试脚本
关于这个maven工程的详细类设计,可以参考文章
献给想提升编码能力的测试人员,一步步教大家上手Java自动化测试架构设计-CSDN博客
执行mvn test 启动测试执行
进入Maven 自动化测试项目的根目录 ,执行命令 mvn test即可启动测试
此处一般都是通过shell 命令执行,通常语句是:
cd 你的项目目录
mvn test
实际工作中,都是负责自动化持续集成的人来编写相关代码,一行代码即可,如下:
sh "cd ${pompath};${maven}/bin/mvn test"
分析测试报告
测试结束后会生成测试报告到maven工程目录 \target\surefire-reports,我们可以在写程序对生成的xml文件进行解析,一旦出错就做后续处理,下面这张图很好的解释了这一流程。
我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力