接口测试集成部署(没图说个JB)
Posted 墨迹测试
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试集成部署(没图说个JB)相关的知识,希望对你有一定的参考价值。
用到的软件: Jenkins + Git + GitHub + Maven + Tomcat + HttpClient +TestNG
Eclipse mars版本 : eclipse-jee-mars-1-win32-x86_64
Maven 版本 : apache-maven-3.5.2.zip
Windows 下做如下配置:
Testng :
org.testng.eclipse_6.9.8.201510130443
org.testng.eclipse_6.9.8.201510130443
第一步骤: Java安装 :
JAVA_HOME : 安装路径
Path : %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
Classpath .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
第二步骤: maven安装
M2_HOME: mvn安装路径
path: %M2_HOME%\bin
D:\program\apache-maven-3.5.2\conf
添加红框中的配置:
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
第三步骤: eclipse_>perference
Eclipse java配置
Eclipse Maven配置:
第四步骤 :
新建maven 项目 :
首先build config 补全maven项目缺少的文件目录
Goup Id : Com.example
Artfice ID : demo
非javaEE 项目, 删除index.jsp文件 不然会报错呀;
补全缺少的文件: 操作如下步骤 ;
1) 新建一个处理表单的servlet , 主要先要建包名
引入servlet所需要的包 :
第五步骤 :
http://www.mvnrepository.com/ 网站配置 pom.xml依赖
使用上面第一个 :
复制到pom.xml 文件中 :
第六步骤 : 编写FormServlet.java业务逻辑代码 (此处只为演示使用 )
第七步骤 :
导出项目 右键 run->maven build
(第二个) ;
首先清空 先前的导包信息 : cleanpackage
(二) 搭建 CentOS 服务器 : root/testing 1.打开已经open的 CentOS7Base.zip 将解压 ,修改成桥接模式 ,进行完整克隆 ;
容器名称 :AppServer
位置 : D:\Virtual Machines
截图 :
文件夹说明 : AppServer 是克隆后的容器名称
CentOS7Base是解压开的原容器
(1) 安装jdk ,
切换opt 目录下 , rz上传jdk ; 安装rz命令:
yum-y install lrzsz
2.使用 rpm -ivh jdk-7u80-linux-x64.rpm 进行安装
默认是安装是在 /usr/java
3.配置环境变量 : vi /etc/profile , 在文件末尾添加以下内容
export JAVA_HOME=/usr/java/jdk1.7.0_80
export PATH=$PATH:$JAVA_HOME/bin
4.使用 source /etc/profile 使其配置生效 ;
5.使用 java–version
进行验证 :
(2) 安装tomcat
切换opt目录下, rz上传tomcat , 安装tomcat ;
tar-zxvf apache-tomcat-8.5.24.tar.gz
2.使用 mv apache-tomcat-8.5.24tomcat
重命名为 tomcat目录
进入 tomcat/bin目录 ,使用 ./start.sh
命令启动tomcat
3.关闭防火墙 ; 不然 访问不了tomcat
systemctl stop firewalld.service
systemctl disable firewalld.service #:不让开机启动 ,一定要关闭
(2.2)tomcat 配置 :
(2.3)使用脚本的方式自动访问tomcat 红色框标记处, 四种访问方式, 我们需要第二种, 使用jenkins访问的话就需要 修改tomcat-users.xml配置文件, 位置 : 上图红框种第一个位置悠;
使用 vi tomcat-users.xml
编辑文件 ,最后一行添加以下内容 :
设置 manager-script 的访问方式的用户名,密码 : 保存 退出
(2.4)切换 Catalina/localhost/
里新建 Manager.xml
文件,并增加以下内容 :
/tomcat/conf/Catalina/localhost/manager.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>
. https://gitee.com
注意 :上图中 截图格式 ;
(2.5) tomcat 关掉 ,然后重启一下;
(2.6)maven 项目中 pom.xml 添加以下内容 ; 使其让我们的 maven自动向tomcat部署项目 ;
<!-- maven部署项目-->
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://172.31.4.144:8080/manager/text</url>
<username>admin</username>
<password>51testing</password>
<update>true</update>
<path>/demo</path>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<warSourceExcludes>src/test/java/**</warSourceExcludes>
</configuration>
</plugin>
添加完项目有错误的话, maven->update
下
(2.7)然后 build , maven->build(第二个)
注意 : 这里之所以填写tomcat7:deploy 是因为在pom.xml文件中我们配置了tomcat-maven插件, 使其让maven自动部署项目到tomcat上 ; 后面 deploy 是部署的意思;
然后run
(2.7) 切换到tomcat的项目目录
Cd/opt/tomcat/webapps
查看是否 有部署上来;
(三) 服务器. Jenkins安装
再次克隆一个 JenkinsServer 服务器 ,专门用于安装jenkins软件 , 安装目录同上
切换到 cd /usr/local目录:
1.解压然后重命名 :
tar -zxvf apache-maven-3.5.2-bin.tar.gz
mv apache-maven-3.5.2 maven
2.配置maven 系统环境变量:
vi etc/profile 文件, 最后一行 ; 增加以下内容 :
3.修改下maven配置: maven/conf/setting.xml
Set nu 146行
粘贴以下内容 :
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
4.安装jdk 切换到opt目录下 :
前置条件 :如果已经有先卸载掉, 在修改掉/etc/profile里面的信息
卸载系统已有的JDK
1、查看已安装的jdk
rpm -qa|grep jdk
卸载jdk
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
rpm -qa|grep jdk
卸载jdk
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
rpm -ivh jdk-8u151-linux-x64.rpm
vi /etc/profile配置以下信息 :
export JAVA_HOME=/usr/java/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile 生效操作
1.5 mvn –v 进行验证操作;
1.6 上传 Jenkins到opt目录下
解压 : rpm -ivh jenkins-2.92-1.1.noarch.rpm
修改jenkins配置 :
vi /etc/rc.d/init.d/Jenkins
66~73行中修改以下内容:” 73行
73 行 : /usr/java/jdk1.8.0_151/java/bin
8.vi /etc/sysconfig/jenkins
29行:JENKINS_USER = "root"
9.关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
10.重新加载服务
systemctl daemon-reload
启动服务
systemctl start jenkins.service
11.默认安装在 /var/lib/Jenkins
查看以下:
使用浏览器进行访问 : ip : 8080
拷贝密码 : vi/var/lib/Jenkins/secrets/initialAdminPassword
12.创建用户名密码:
用户名: Jenkins
密码: 123456
zhzxweijing@163.com
13.jenkins 常用配置;
给账户授权 : 系统管理->全局安全配置
保存 ;
_>系统设置 :
_>全局工具配置:
保存;
至此配置完成
(四)配置任务进行调度; ;
Eclipse->team->share project
然后:
Team->commit->
上面是本地仓库配置 ,下面是中央仓库 (重复如上步骤)
如果有重复代码, 强制覆盖掉;
查看gitee : oschina.说明我们上传成功’
: appServer 需要设置 如下内容, 让 tomcat自动从jenkins上下载代码部署到服务器上 启动tomcat服务器 :
删掉 先前部署的demo.war项目 :
jenkins中新建item :
输入凭证:
构建maven项目
保存 ;
Jenkins output 内容查看 : 说明我们正在从阿里云下载依赖的类库文件;
(3.1) oschina新建 testRep1 ;
Eclipse 切换工作空间 : test1
新建测试项目 : maven project
Build path :
Pom.xml 添加依赖的jar包 ;
<!-- 使用testng替换junit -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.8</version>
<scope> compile</scope>
</dependency>
<!-- 配置httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.2</version>
</dependency>
<!-- 配置feed4testng框架 -->
<dependency>
<groupId>org.databene</groupId>
<artifactId>feed4testng</artifactId>
<version>0.6.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>org.uncommons</groupId>
<artifactId>reportng</artifactId>
<version>1.1.4</version>
</dependency>
<dependency>
<groupId>velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>3.0</version>
</dependency>
(3.2) 新建测试类 :
代码如下 :
package com.example.test;
import java.net.URI;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.databene.benerator.anno.Source;
import org.databene.feed4testng.FeedTest;
import org.testng.Assert;
import org.testng.annotations.Test;
public class FormTest extends FeedTest{
@Test(dataProvider="feeder")
@Source("./data/add.csv")
public void doGet(String a, String b,String expected) throws Exception{
// TODO Auto-generated method stub
CloseableHttpClient client=HttpClients.createDefault();
URI uri = new URIBuilder()
.setScheme("http")
.setHost("172.31.4.144")
.setPort(8080)
.setPath("/demo/FormServlet")
.setParameter("a",a)
.setParameter("b", b)
.build();
HttpGet request = new HttpGet(uri);
CloseableHttpResponse response = client.execute(request);
String actual = EntityUtils.toString(response.getEntity());
Assert.assertEquals(actual, expected);
System.out.println(actual);
}
}
<!--maven运行testng -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>${jdk.level}</source>
<target>${jdk.level}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<suiteXmlFiles>
<!-- TestNG suite XML files -->
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
项目中新建xml文件 ;
Testng.xml 文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="default">
<test name="default">
<classes>
<class name="com.example.test.FormTest"></class>
</classes>
</test>
</suite>
同上提交测试 代码到oschina ; 同时jenkins
查看jenkins 自动测试console output
50. 集成在一块儿 : Deploy
51 .test 构建后操作
之后执行 deploy项目 ,执行;’
以上是关于接口测试集成部署(没图说个JB)的主要内容,如果未能解决你的问题,请参考以下文章