中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試

發布時間:2020-08-09 20:42:40 來源:ITPUB博客 閱讀:207 作者:精準測試 欄目:編程語言

1、微服務簡介
 
  微服務英文名稱Microservice,Microservice架構模式就是將整個Web應用組織為一系列小的Web服務。這些小的Web服務可以獨立地編譯及部署,并通過各自暴露的API接口相互通訊。它們彼此相互協作,作為一個整體為用戶提供功能,卻可以獨立地運行。
 
2、Spring Cloud項目簡介
 
  Spring Cloud是基于Spring Boot的一整套實現微服務的框架。提供了微服務開發所需的配置管理、服務發現、斷路器、只能路由、微代理、控制總線、全局鎖、決策競選、分布式會話和集群狀態管理等組件。
 
3、前期準備工作
 
3.1配置jdk

 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試 【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
3.2配置tomcat
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
3.3配置maven
 
注:本文中Jetbrain的IDEA工具是集成了Maven的,如下圖所示:
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
如若做修改,請按本地maven實際路徑填寫。
 
4、Spring Cloud的環境
 
 Spring Cloud源碼
 IntelliJ IDEA(以下簡稱“idea”)
 MySQL
 JDK8
 Tomcat7
 Maven
 
4.1安裝環境
 
 注:IntelliJ IDEA和JDK的安裝和安裝包就用自己現有的就可以,星云測試將提供MySQL和Nodejs的安裝包,但必須前提是用戶自己的本機上不存在安裝的MySQL和Nodejs。
 
4.1.1腳本一鍵安裝mysql和nodejs
 
1、 打開TT_Soft文件夾
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
2、以管理員身份運行TeststarsSoftInstall.exe
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
3、等待自動安裝完成,關閉窗口
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
4、使用net start mysql 命令啟動MySQL服務
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
5、使用node –v查看node版本
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
5、配置Spring Cloud
 
5.1 idea創建eureka服務注冊中心
 
以下簡稱“8000”項目。
新建項目:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
idea新建spring boot項目,選擇Spring Initializr,也可以在https://start.spring.io上創建再導入本地:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
修改group等相關信息:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
注意右上角的spring boot的版本選擇:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
直接點擊完成即可:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
到此,一個springboot項目就完成了。
接下來要做的是配置一個eureka服務注冊中心。
此項目的pom.xml添加以下內容:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter</artifactId>
   </dependency>

啟動代碼中添加@EnableEurekaServer注解和import...,如下所示:

package com.teststars.springclouddemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplicationpublic class SpringcloudDemoApplication{   
public static void main(String[] args) 
 {
      SpringApplication.run(SpringcloudDemoApplication.class, args);
   }
}

修改application.properties(加eureka.client.register-with-eureka=false和eureka.client.fetch-registry=false意思是不讓服務中心注冊自己):
 

server.port=8000
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

 
啟動該eureka server:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
看到下面的LOG表明Eureka服務端啟動成功:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
打開谷歌瀏覽器(因IDEA中的默認設置),訪問https://localhsot:8000/可看到微服務的查看面板:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
至此,服務注冊中心已配置完成,接下來進行服務的注冊操作。
 
5.2 idea創建服務提供者
 
以下簡稱“8001”項目。
 
創建一個Eureka-Client客戶端也就是服務提供者客戶端在向注冊中心會提供一些元數據,例如主機和端口,URL,主頁等。Eureka server從每個client實例接收心跳消息。如果心跳超時,則通常將該實例從注冊server中刪除。
 
按照上面的創建方式創建項目springcloud-provider-demo:
 
啟動代碼中添加@EnableDiscoveryClient和import...,如下所示:

package com.teststars.springcloudproviderdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplicationpublic class SpringcloudProviderDemoApplication {   
public static void main(String[] args) {
      SpringApplication.run(SpringcloudProviderDemoApplication.class, args);
   }
}

修改application.properties:

server.port=8001
spring.application.name=springcloud-server
eureka.client.service-url.defaultZone: http://localhost:8000/eureka/

編寫一個簡單的controller。注意編寫的controller一定要在啟動類目錄級別或下層。不然不會加載。
項目啟動類的同級目錄下新建包:controller,添加類:HelloWorld,如下所示:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試

package com.teststars.springcloudproviderdemo.controller;
import org.springframework.web.bind.annotation.*;
@RestControllerpublic class HelloWorld {
    @GetMapping("/test/{id}")    
    public String test(@PathVariable String id){        
    return "hello"+id.toString();
    }
}

 
啟動項目SpringcloudProviderDemoApplication;
 
在瀏覽器中刷新界面: https://localhsot:8000/  查看Eureka信息面板服務信息,可看到已顯示存在一個8001的服務:
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
點擊圖中綠色字體部分,顯示如下圖:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
8001接口后加參數/test/test訪問,注:test可為任意字符,顯示如下圖所示:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
5.3 idea創建消費者
 
以下簡稱“8002”項目。
 
以下是在https://start.spring.io上創建再導入idea中的方式:
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
pom.xml添加以下內容:
 

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-ribbon</artifactId>
   </dependency>

 
修改application.properties:
 

server.port=8002
spring.application.name=springcloud-customer
eureka.client.service-url.defaultZone: http://localhost:8000/eureka/

啟動代碼中添加@EnableDiscoveryClient,并加入RestTemplate的bean,RestTemplate是spring用來操作rest資源的類,使用了模板模式。同時注意注解@LoadBalanced,只需要這個注解就可以為RestTemplate整合ribbon,從而實現負載均衡。而eureka和ribbon配合使用時會將服務名自動映射成微服務的網絡地址。使得可伸縮性增強。如下所示:

package com.teststars.springcloudcustomerdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@EnableDiscoveryClient
@SpringBootApplication
public class SpringcloudCustomerDemoApplication {
   public static void main(String[] args) {
      SpringApplication.run(SpringcloudCustomerDemoApplication.class, args);
   }
   @Bean
   @LoadBalanced
   public RestTemplate restTemplate(){
      return new RestTemplate();
   }
}

 
編寫controller,這里restTemplate.getForObject中的url換成http://localhost:8001/test也是可以的,但是這樣的話耦合度是比較高的,如果服務提供者的地址發生了變化那這個消費者就不能正常運行了。由于集成了ribbon,所以這里可以換成服務名。
 
項目啟動類的同級目錄下新建包:controller,添加類:Test,如下所示:
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試

package com.teststars.springcloudcustomerdemo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
public class Test {
@Autowired
private RestTemplate restTemplate;
@GetMapping("/test/{id}")
public String test(@PathVariable String id){
return this.restTemplate.getForObject("http://SPRINGCLOUD-SERVER/test/"+id,String.class);
}
}

 
啟動項目SpringcloudCustomerDemoApplication;
 
在瀏覽器中的刷新頁面: https://localhsot:8000/   查看Eureka信息面板服務信息可看到多了一個服務,如下圖8002綠色字體部分所示:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
點擊圖中綠色字體部分:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
添加參數/test/aaa,注:aaa可為任意字符:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
6、測試項目
6.1下載工具及工具配置
6.1.1從官網上下載星云測試工具: http://www.teststars.cc/
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
下載以后進行配置。
6.1.2星云測試服務端的配置
TTLangage.config配置項說明:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
1、 運行下的星云測試server目錄中ThreadingTestServer.exe,在右下的圖表中點注冊信息,查看其時間,星云測試有兩個月的體驗,若超過兩個月,發生KEY過期,請聯系星云測試的工作人員,并提交服務端中的序列碼。
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 

2、聯系星云工作人員獲取當前服務器的key.key文件,替換到星云的server目錄下;
 
3、啟動server目錄下的ThreadingTestServer.exe后會自動打開同級目錄下的ThreadingTestServerFront.exe,看到自動彈出下面窗口后,表示連接正常。
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
6.1.3星云測試客戶端的配置
注:星云測試在線客戶端的連接需要訪問端口17262/17263.登陸之前需要保證網絡連接不存在限制。
打開客戶端之前需要修改TTClient文件夾下的Server.cfg文件,配置localIP項為可以與服務端正常數據通信的本機IP地址。配置localIP原因是:在客戶端需要接收來自服務端傳來的動態數據,配置本地的IP地址服務端才能把數據傳到客戶端中。
 
配置IP地址完成后雙擊運行TTClient\TT.exe文件進入星云測試客戶端。選擇文件->登錄,輸入星云測試服務端的IP地址以及自己的用戶名和密碼即可登錄。如下圖所示:
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
6.1.4星云測試云報表平臺服務啟動
 
1、運行星云測試TTWeb目錄下的bin\redis-2.4.5-win32-win64\32bit中的redis-server.exe:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
2、運行星云測試TTWeb目錄下的startTTwebserver.bat:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
訪問網頁報表網頁IP地址:3000
 
6.2創建工程和版本并編譯
 
1、登錄客戶端
 
2、選中待插裝的空版本,版本處于解鎖狀態(解鎖狀態:右鍵-解鎖狀態)
 
3、修改javaForWindows目錄下的Server.cfg配置文件,[SERVER] ip填寫實際ip地址,修改[PROPERTY]字段,與客戶端目錄下的Server.cfg同步:
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
4、修改javaForWindows目錄下的ComplierPath.xml配置文件:
同一個版本下可添加多個子模塊即proname,proname不能重復,一個子模塊下可以配置多個工程路徑。
 
proName:子模塊名稱
 
project_path:測試程序源碼文件路徑
 
class_path:測試程序class文件路徑
 
注:因為項目8002關聯著8001,所以這里需要編譯8001和8002兩個模塊。如下圖:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
5、修改javaForWindows目錄下tt_windows文件夾下Server.ini配置文件,
ip設置為客戶端所在的ip地址:
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
6、在javaForWindows文件根目錄,打開命令行運行autoCompiler.jar進行編譯:
jre\bin\java.exe -jar autoCompile.jar –e D:\J2EE_Enterprise_key_64bit0814\CompileToolsPkg\javaForWindows
 
注:-e后面的參數為ComplierPath.xml文件的目錄。
編譯成功如下圖所示:
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
7、在客戶端查看數據,選中之前新建的空版本,右鍵點擊重新加載版本數據。
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
由于測試的時候需要運行插裝后的代碼(編譯完成后會在java目錄同層生成src-instru目錄,src-instru目錄即為編譯插裝后的源碼);
具體操作:先將源碼目錄下未插裝的java目錄重命名為pre_java,再將編譯插裝生成的src-instru目錄命名為java。
為使函數覆蓋率可視視圖代碼部分顯示正常,需要手動修改源碼路徑:右鍵版本,點擊修改源碼路徑,選擇到pre_java目錄即可。
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
6.3測試前準備
 
6.3.1添加數據傳輸配置文件

 
數據傳輸配置文件是保證運行的數據可以回傳到星云服務器的。配置方法是在具體的客戶測試環境下的usr/local/bin文件夾下新建配置文件config.cfg 文件內容如下:
 
state=1
IP=(IP值寫星云測試服務端IP,注意要大寫)
(如果發布環境是windows環境,需要在C盤根目錄下配置上述文件)
 
6.3.2 agent啟動項目
 
使用星云測試提供的agent包啟動項目有以下兩種方式:
6.3.2.1 idea開發工具的項目啟動項中添加agent參數
 
注:8001項目和8002項目中均需要作如下配置:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
VM options一項添加如下配置,jar文件按星云測試提供的agent解壓縮文件的絕對路徑填寫:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
修改點擊Apply、OK;
插樁代碼的運行需要添加星云測試提供的jar包,需要修改pom.xml文件來引入jar,加入到兩個<dependencies>之間,加入的代碼如下:
 
systemPath按JavaParser-j2ee.jar和jeromq-0.3.0-SNAPSHOT.jar的絕對路徑填寫:
 

<dependency>
   <groupId>com.zoa</groupId>
   <artifactId>JavaParser-ZMQ</artifactId>
   <version>1.0</version>
   <scope>system</scope>
   <systemPath>D:\J2EE_Enterprise_key_64bit0814\client\MQ\JavaParser-j2ee.jar</systemPath></dependency><dependency>
   <groupId>com.zoa</groupId>
   <artifactId>jeromq</artifactId>
   <version>1.0</version>
   <scope>system</scope>
   <systemPath>D:\J2EE_Enterprise_key_64bit0814\client\MQ\jeromq-0.3.0-SNAPSHOT.jar</systemPath></dependency>

8001和8002項目做完以上操作修改后,idea中依次運行8000、8001、8002項目,啟動項目成功如下圖:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
  【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
  【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試

6.3.2.2 jar包的啟動命令中添加agent參數
 
首先正常啟動8000項目;
 
插樁代碼的運行需要添加星云測試提供的jar包:
 
idea中直接引入星云測試提供的jar包,操作如下圖所示:
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
  【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
  【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
  【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試

引入jar包后,在idea中對8001和8002項目進行打包:clean->package:
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
其次分別打開兩個DOS窗口,輸入以下帶有agent參數的命令,啟動8001和8002項目:
 
java -javaagent:D:\0823zoa-agent-1.6.2\zoa-bootstrap-1.6.2.jar -jar D:\springcloud-provider-demo\springcloud-provider-demo\target\springcloud-provider-demo-0.0.1-SNAPSHOT.jar
 
java -javaagent:D:\0823zoa-agent-1.6.2\zoa-bootstrap-1.6.2.jar -jar D:\springcloud-customer-demo\target\springcloud-customer-demo-0.0.1-SNAPSHOT.jar
 
D:\0823zoa-agent-1.6.2\zoa-bootstrap-1.6.2.jar =agent路徑;
D:\springcloud-provider-demo\springcloud-provider-demo\target\springcloud-provider-demo-0.0.1-SNAPSHOT.jar =項目路徑;
 
出現以下界面表示項目啟動成功:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
6.3.3設置cookie
 
打開谷歌瀏覽器(因idea中默認設置的是谷歌瀏覽器),輸入網址: http://localhost:8000打開eureka服務注冊中心;可以看到已經面板上已顯示8001和8002 :
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
點擊8002對應的綠色字體部分進入8002對應的界面:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
  【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 

1、在項目URL后加參數teststars.jsp,訪問頁面進行cookie設置:
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
2、點擊setcookie進行設置,設置成功頁面如下:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
注:為了區分測試,設置的用戶名與星云客戶端當前登錄用戶名要保持一致。
查看控制臺打印信息可知,username設置成功:
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
7、測試結果
7.1示波器波形展示
先選中測試用例,再點擊開始后就可以進行相應的測試工作了,測試的時候示波器可以收到動態數據并以波形圖的方式展示出來。
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
刷新數據,因為8002關聯著8001,所以這里可以看到,測試8002,8001也被覆蓋到:
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 
【星云測試】開發者測試(3)-采用精準測試工具對springcloud微服務應用進行穿透測試
 

上圖是一個spring cloud微服務架構下兩個節點的調用圖,當從第一層入口組件訪問后,入口組件向后調用下一層節點的時候,后一層節點的運行線程自動取到了前一層節點的用戶信息,并且加入到了第二層節點的運行線程控件,這樣通過精準測試示波器(登錄用戶標識和請求標識一致)就可以收到兩個節點的數據。并且實現在多個用戶同時訪問分布式應用得時候,不同用戶出發的數據會自動分離并路由到對應的示波器并最終對應到用例上。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

思南县| 高青县| 营口市| 马山县| 当阳市| 铁岭市| 吐鲁番市| 巴南区| 新昌县| 高雄县| 淮阳县| 赣榆县| 屯昌县| 南京市| 高要市| 临夏市| 西盟| 吉林市| 桐庐县| 宜宾市| 桃园市| 福海县| 砚山县| 东乡族自治县| 连城县| 麻江县| 广宁县| 光泽县| 新河县| 玛纳斯县| 临沧市| 醴陵市| 阿尔山市| 肥乡县| 天水市| 湟中县| 福建省| 通海县| 阜南县| 新田县| 文登市|