接口测试集成部署(没图说个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 :

 
   
   
 
  1. org.testng.eclipse_6.9.8.201510130443

  2. org.testng.eclipse_6.9.8.201510130443

第一步骤: Java安装 :

 
   
   
 
  1. JAVA_HOME : 安装路径

  2. Path :  %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

  3. Classpath .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 

第二步骤: maven安装

 
   
   
 
  1. M2_HOME mvn安装路径

  2. path: %M2_HOME%\bin

 
   
   
 
  1. D:\program\apache-maven-3.5.2\conf

接口测试集成部署(没图说个JB)


添加红框中的配置:

 
   
   
 
  1. <mirror>

  2.        <id>nexus-aliyun</id>

  3.        <mirrorOf>*</mirrorOf>

  4.        <name>Nexus aliyun</name>

  5.        <url>http://maven.aliyun.com/nexus/content/groups/public</url>

  6. </mirror>

第三步骤: eclipse_>perference

Eclipse java配置

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)

Eclipse Maven配置:

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)

第四步骤 :

新建maven 项目 :
首先build config 补全maven项目缺少的文件目录

 
   
   
 
  1. Goup Id : Com.example

  2. Artfice ID : demo

非javaEE 项目, 删除index.jsp文件 不然会报错呀;

接口测试集成部署(没图说个JB)

补全缺少的文件: 操作如下步骤 ;

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)

1) 新建一个处理表单的servlet , 主要先要建包名

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)

引入servlet所需要的包 :

第五步骤 :

http://www.mvnrepository.com/ 网站配置 pom.xml依赖

接口测试集成部署(没图说个JB)

使用上面第一个 :

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)

复制到pom.xml 文件中 :

接口测试集成部署(没图说个JB)

第六步骤 : 编写FormServlet.java业务逻辑代码 (此处只为演示使用 )

接口测试集成部署(没图说个JB)

第七步骤 :
导出项目 右键 run->maven build (第二个) ;
首先清空 先前的导包信息 : cleanpackage

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)

(二) 搭建 CentOS 服务器 : root/testing 1.打开已经open的 CentOS7Base.zip 将解压 ,修改成桥接模式 ,进行完整克隆 ;

 
   
   
 
  1.  容器名称 :AppServer

  2.  位置 : D:\Virtual Machines

  3.  截图 :

接口测试集成部署(没图说个JB)

文件夹说明 : AppServer 是克隆后的容器名称
CentOS7Base是解压开的原容器

(1) 安装jdk ,

  1. 切换opt 目录下 , rz上传jdk ; 安装rz命令: yum-y install lrzsz

接口测试集成部署(没图说个JB)

2.使用 rpm -ivh jdk-7u80-linux-x64.rpm 进行安装

接口测试集成部署(没图说个JB)

默认是安装是在 /usr/java

接口测试集成部署(没图说个JB)

3.配置环境变量 : vi /etc/profile , 在文件末尾添加以下内容

 
   
   
 
  1. export JAVA_HOME=/usr/java/jdk1.7.0_80

  2. export PATH=$PATH:$JAVA_HOME/bin

 
   
   
 

接口测试集成部署(没图说个JB)

4.使用 source /etc/profile 使其配置生效 ;

接口测试集成部署(没图说个JB)

5.使用 javaversion进行验证 :

接口测试集成部署(没图说个JB)

(2) 安装tomcat

  1. 切换opt目录下, rz上传tomcat , 安装tomcat ; tar-zxvf apache-tomcat-8.5.24.tar.gz

接口测试集成部署(没图说个JB)

2.使用 mv apache-tomcat-8.5.24tomcat 重命名为 tomcat目录

进入 tomcat/bin目录 ,使用 ./start.sh 命令启动tomcat

接口测试集成部署(没图说个JB)

3.关闭防火墙 ; 不然 访问不了tomcat

 
   
   
 
  1. systemctl stop firewalld.service

  2. systemctl disable firewalld.service  #:不让开机启动 ,一定要关闭


(2.2)tomcat 配置 :

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)

(2.3)使用脚本的方式自动访问tomcat 红色框标记处, 四种访问方式, 我们需要第二种, 使用jenkins访问的话就需要 修改tomcat-users.xml配置文件, 位置 : 上图红框种第一个位置悠;
使用 vi tomcat-users.xml 编辑文件 ,最后一行添加以下内容 :

接口测试集成部署(没图说个JB)

设置 manager-script 的访问方式的用户名,密码 : 保存 退出

(2.4)切换 Catalina/localhost/ 里新建 Manager.xml 文件,并增加以下内容 :

/tomcat/conf/Catalina/localhost/manager.xml

 
   
   
 
  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <Context privileged="true" antiResourceLocking="false"

  3.         docBase="${catalina.home}/webapps/manager">

  4.             <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />

  5. </Context>

接口测试集成部署(没图说个JB)

. https://gitee.com

注意 :上图中 截图格式 ;

(2.5) tomcat 关掉 ,然后重启一下;

(2.6)maven 项目中 pom.xml 添加以下内容 ; 使其让我们的 maven自动向tomcat部署项目 ;

 
   
   
 
  1. <!-- maven部署项目-->

  2.    <plugins>

  3.        <plugin>

  4.            <groupId>org.apache.tomcat.maven</groupId>

  5.            <artifactId>tomcat7-maven-plugin</artifactId>

  6.            <version>2.2</version>

  7.            <configuration>

  8.            <url>http://172.31.4.144:8080/manager/text</url>

  9.            <username>admin</username>

  10.            <password>51testing</password>

  11.            <update>true</update>

  12.            <path>/demo</path>

  13.            </configuration>

  14.        </plugin>

  15.        <plugin>

  16.              <groupId>org.apache.maven.plugins</groupId>    

  17.            <artifactId>maven-war-plugin</artifactId>    

  18.            <version>2.0.2</version>  

  19.            <configuration>    

  20.                 <warSourceExcludes>src/test/java/**</warSourceExcludes>    

  21.            </configuration>    

  22.          </plugin>

添加完项目有错误的话, maven->update

(2.7)然后 build , maven->build(第二个)

注意 : 这里之所以填写tomcat7:deploy 是因为在pom.xml文件中我们配置了tomcat-maven插件, 使其让maven自动部署项目到tomcat上 ; 后面 deploy 是部署的意思;

接口测试集成部署(没图说个JB)

然后run

(2.7) 切换到tomcat的项目目录

Cd/opt/tomcat/webapps

查看是否 有部署上来;

接口测试集成部署(没图说个JB)

(三) 服务器. Jenkins安装

再次克隆一个 JenkinsServer 服务器 ,专门用于安装jenkins软件 , 安装目录同上

接口测试集成部署(没图说个JB)

切换到 cd /usr/local目录:

1.解压然后重命名 :

 
   
   
 
  1. tar -zxvf apache-maven-3.5.2-bin.tar.gz

  2. mv apache-maven-3.5.2 maven


2.配置maven 系统环境变量:

vi etc/profile 文件, 最后一行 ; 增加以下内容 :

接口测试集成部署(没图说个JB)

  1. 3.修改下maven配置: maven/conf/setting.xml

 
   
   
 
  1.   Set nu  146

  2.   粘贴以下内容 :

  3.     <mirror>

  4.        <id>nexus-aliyun</id>

  5.        <mirrorOf>*</mirrorOf>

  6.        <name>Nexus aliyun</name>

  7.        <url>http://maven.aliyun.com/nexus/content/groups/public</url>

  8.    </mirror>


  1. 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

 
   
   
 
  1. rpm -qa|grep jdk

  2. 卸载jdk

  3. rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

  4. rpm -ivh jdk-8u151-linux-x64.rpm

  5. vi /etc/profile配置以下信息 :

  6. export JAVA_HOME=/usr/java/jdk1.8.0_151

  7. export PATH=$PATH:$JAVA_HOME/bin

  8. source /etc/profile 生效操作

1.5 mvn –v 进行验证操作;

接口测试集成部署(没图说个JB)

1.6 上传 Jenkins到opt目录下

 
   
   
 
  1. 解压 : rpm -ivh jenkins-2.92-1.1.noarch.rpm

  2. 修改jenkins配置 :

  3. vi /etc/rc.d/init.d/Jenkins

  4. 66~73行中修改以下内容:” 73

  5. 接口测试集成部署(没图说个JB)


  6. 73 :  /usr/java/jdk1.8.0_151/java/bin




8.vi /etc/sysconfig/jenkins

 
   
   
 
  1. 29行:JENKINS_USER = "root"

9.关闭防火墙

 
   
   
 
  1. systemctl stop firewalld.service

  2. systemctl disable firewalld.service

  1. 10.重新加载服务

 
   
   
 
  1. systemctl daemon-reload

启动服务

 
   
   
 
  1. systemctl start jenkins.service

11.默认安装在 /var/lib/Jenkins

查看以下:

使用浏览器进行访问 : ip : 8080

拷贝密码 : vi/var/lib/Jenkins/secrets/initialAdminPassword

12.创建用户名密码:

 
   
   
 
  1. 用户名: Jenkins

  2. 密码: 123456

  3. zhzxweijing@163.com    

13.jenkins 常用配置;

给账户授权 : 系统管理->全局安全配置  

接口测试集成部署(没图说个JB)

保存 ;

_>系统设置 :

接口测试集成部署(没图说个JB)

_>全局工具配置:

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)

保存;

至此配置完成

(四)配置任务进行调度; ;
Eclipse->team->share project

接口测试集成部署(没图说个JB)

然后:

Team->commit->

上面是本地仓库配置 ,下面是中央仓库 (重复如上步骤)

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)

如果有重复代码, 强制覆盖掉;

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)


查看gitee : oschina.说明我们上传成功’

接口测试集成部署(没图说个JB)

: appServer 需要设置 如下内容, 让 tomcat自动从jenkins上下载代码部署到服务器上 启动tomcat服务器 :

接口测试集成部署(没图说个JB)

删掉 先前部署的demo.war项目 :

接口测试集成部署(没图说个JB)

jenkins中新建item :

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)

输入凭证:

接口测试集成部署(没图说个JB)

构建maven项目

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)


保存 ;

Jenkins output 内容查看 : 说明我们正在从阿里云下载依赖的类库文件;

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)

(3.1) oschina新建 testRep1 ;

Eclipse 切换工作空间 : test1

新建测试项目 : maven project

接口测试集成部署(没图说个JB)

Build path :

接口测试集成部署(没图说个JB)

Pom.xml 添加依赖的jar包 ;

 
   
   
 
  1. <!-- 使用testng替换junit -->


  2.        <dependency>

  3.            <groupId>org.testng</groupId>

  4.            <artifactId>testng</artifactId>

  5.            <version>6.8.8</version>

  6.            <scope> compile</scope>

  7.        </dependency>

  8. <!-- 配置httpclient -->

  9. <dependency>

  10.    <groupId>org.apache.httpcomponents</groupId>

  11.    <artifactId>httpclient</artifactId>

  12.    <version>4.5.2</version>

  13. </dependency>  

  14. <dependency>

  15.    <groupId>org.apache.httpcomponents</groupId>

  16.    <artifactId>httpmime</artifactId>

  17.    <version>4.5.2</version>

  18. </dependency>  

  19. <!-- 配置feed4testng框架 -->

  20. <dependency>

  21.    <groupId>org.databene</groupId>

  22.    <artifactId>feed4testng</artifactId>

  23.    <version>0.6.2</version>

  24. </dependency>

  25. <dependency>

  26.    <groupId>org.slf4j</groupId>

  27.    <artifactId>slf4j-log4j12</artifactId>

  28.    <version>1.7.2</version>

  29. </dependency>  

  30. <dependency>

  31.    <groupId>org.uncommons</groupId>

  32.    <artifactId>reportng</artifactId>

  33.    <version>1.1.4</version>

  34. </dependency>  

  35. <dependency>

  36.    <groupId>velocity</groupId>

  37.    <artifactId>velocity</artifactId>

  38.    <version>1.5</version>

  39. </dependency>  

  40. <dependency>

  41.    <groupId>com.google.inject</groupId>

  42.    <artifactId>guice</artifactId>

  43.    <version>3.0</version>

  44. </dependency>

(3.2) 新建测试类 :

代码如下 :

 
   
   
 
  1. package com.example.test;

  2. import java.net.URI;

  3. import org.apache.http.client.methods.CloseableHttpResponse;

  4. import org.apache.http.client.methods.HttpGet;

  5. import org.apache.http.client.utils.URIBuilder;

  6. import org.apache.http.impl.client.CloseableHttpClient;

  7. import org.apache.http.impl.client.HttpClients;

  8. import org.apache.http.util.EntityUtils;

  9. import org.databene.benerator.anno.Source;

  10. import org.databene.feed4testng.FeedTest;

  11. import org.testng.Assert;

  12. import org.testng.annotations.Test;

  13. public class FormTest extends FeedTest{

  14.    @Test(dataProvider="feeder")

  15.    @Source("./data/add.csv")

  16.    public  void doGet(String a, String b,String expected) throws Exception{

  17.        // TODO Auto-generated method stub

  18.        CloseableHttpClient client=HttpClients.createDefault();

  19.        URI uri = new URIBuilder()

  20.                .setScheme("http")

  21.                .setHost("172.31.4.144")

  22.                .setPort(8080)

  23.                .setPath("/demo/FormServlet")

  24.                .setParameter("a",a)

  25.                .setParameter("b", b)

  26.                .build();

  27.        HttpGet request = new HttpGet(uri);

  28.        CloseableHttpResponse response = client.execute(request);

  29.        String actual = EntityUtils.toString(response.getEntity());

  30.        Assert.assertEquals(actual, expected);

  31.        System.out.println(actual);

  32.    }

  33. }

<!--maven运行testng -->

 
   
   
 
  1.  <build>

  2.      <plugins>

  3.          <plugin>

  4.            <groupId>org.apache.maven.plugins</groupId>

  5.            <artifactId>maven-compiler-plugin</artifactId>

  6.            <version>3.5.1</version>

  7.                <configuration>

  8.                    <source>${jdk.level}</source>

  9.                    <target>${jdk.level}</target>

  10.                </configuration>

  11.        </plugin>

  12.        <plugin>

  13.            <groupId>org.apache.maven.plugins</groupId>

  14.            <artifactId>maven-surefire-plugin</artifactId>

  15.            <version>2.19.1</version>

  16.                <configuration>

  17.                    <suiteXmlFiles>

  18.                    <!-- TestNG suite XML files -->

  19.                        <suiteXmlFile>testng.xml</suiteXmlFile>

  20.                    </suiteXmlFiles>

  21.                </configuration>

  22.        </plugin>

  23.      </plugins>

  24.  </build>

项目中新建xml文件 ;

接口测试集成部署(没图说个JB)

Testng.xml 文件内容如下:

 
   
   
 
  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

  3. <suite name="default">

  4.    <test name="default">

  5.        <classes>

  6.            <class name="com.example.test.FormTest"></class>

  7.        </classes>

  8.    </test>

  9. </suite>

同上提交测试 代码到oschina ; 同时jenkins

接口测试集成部署(没图说个JB)

接口测试集成部署(没图说个JB)

查看jenkins 自动测试console output

接口测试集成部署(没图说个JB)

  1. 50. 集成在一块儿 : Deploy


51 .test 构建后操作

之后执行 deploy项目 ,执行;’


以上是关于接口测试集成部署(没图说个JB)的主要内容,如果未能解决你的问题,请参考以下文章

接口自动化平台搭建,自动化项目Jenkins持续集成

图说Kubernetes

Unittest接口自动化测试UnittestGithubJenkins持续化集成

3张图说清楚:java设计模式原则:开闭接口隔离迪米特法则

Android片段文档含义

持续集成:jmeter+ant+jenkins搭建接口自动化测试环境