您好,登錄后才能下訂單哦!
簡(jiǎn)介
:本文主要目的是把現(xiàn)今主流的Dubbo框架項(xiàng)目和精準(zhǔn)測(cè)試進(jìn)行對(duì)接,通過(guò)精準(zhǔn)測(cè)試的數(shù)據(jù)穿透、數(shù)據(jù)采集、測(cè)試用例與代碼的雙向追溯、數(shù)據(jù)分析等一系列精準(zhǔn)測(cè)試的特有功能達(dá)到對(duì)項(xiàng)目質(zhì)量的保證。
本次環(huán)境搭建分為基礎(chǔ)環(huán)境準(zhǔn)備、Dubbo環(huán)境搭建、精準(zhǔn)測(cè)試環(huán)境搭建、精準(zhǔn)測(cè)試與Dubbo環(huán)境對(duì)接等一整套完整的配置過(guò)程,用戶可以通過(guò)下圖中的流程圖確認(rèn)自己所部署過(guò)程中進(jìn)行到的階段點(diǎn),從而排查部署中可能遇見(jiàn)的問(wèn)題。
1, Eclipse Java Photon
2, JDK 1.8
3, MySQL 5.7
4, Navicat for MySQL
5, Nodejs
6, apache-maven-3.5.4
7, zoa-agent-1.6.2
8, apache-tomcat-8.0.47
9, J2EE_Enterprise_key_64bit0614
10, 項(xiàng)目:dubbo
11, 服務(wù):zookeeper
項(xiàng)目和微服務(wù)下載地址:
https://pan.baidu.com/s/1JBKJBVhm0XQT0VmWacD3wQ
提取碼: nr9t
正常安裝Eclipse,jdk和tomcat,比且需要在tomcat中配置agent,具體的配置是:
找到tomcat的G:\apache-tomcat-8.0.47\bin目錄catalina.bat文件
打開(kāi)以后將agent的安裝目錄和解密庫(kù)的目錄放在catalina.bat文件里面
腳本安裝mysql和nodejs(一鍵安裝)
1、 打開(kāi)TT_Soft文件夾
2、以管理員身份運(yùn)行TeststarsSoftInstall.exe
3、等待自動(dòng)安裝完成,關(guān)閉窗口
4、使用net start mysql 命令啟動(dòng)MySQL服務(wù)
5、使用node –v查看node版本
Eclipse本身會(huì)帶Maven,但是不如自己安裝的靈活,解壓apache-maven-3.5.4.zip(例如:E:\apache-maven-3.5.4),配置系統(tǒng)變量添加變量名:
MAVEN_HOME變量值= E:\apache-maven-3.5.4,
Path添加變量值= %MAVEN_HOME%\bin,cmd測(cè)試用mvn -v如下即安裝成功。
Windows-Preferences-Maven-Installations-Add,路徑指向
E:\apache-maven-3.5.4,加載完成后勾選新的apache-maven-3.5.4,Apply。
修改E:\apache-maven-3.5.4\conf\settings.xml,添加如下一行代碼定義,例如:
<localRepository>C:\Users\luxper.m2\repository</localRepository>,C:\Users\luxper.m2\repository是我的本地maven倉(cāng)庫(kù)地址。
Eclipse:Windows-Preferences-Maven-User Settings-Global Settings,Browse= E:\apache-maven-3.5.4\conf\settings.xml,Apply。
將Dubbo下載好以后直接放在指定目錄下
將下載好的dubbo的項(xiàng)目導(dǎo)入到eclipse中
edu-common-parent:提供
edu-facade-user:公共接口
edu-service-user:服務(wù)端(生產(chǎn)者)
edu-web-boss:客戶端(消費(fèi)者)
將下載好的sql文件正確的導(dǎo)入到數(shù)據(jù)庫(kù)中
下載以后進(jìn)行配置:
TTLangage.config配置項(xiàng)說(shuō)明:
1、 運(yùn)行下的星云測(cè)試server目錄中ThreadingTestServer.exe,在右下的圖表中點(diǎn)注冊(cè)信息,查看其時(shí)間,星云測(cè)試有兩個(gè)月的體驗(yàn),若是超過(guò)兩個(gè)月,發(fā)生KEY過(guò)期,請(qǐng)聯(lián)系星云測(cè)試的工作人員,并提交服務(wù)端中的序列碼
2、聯(lián)系星云工作人員獲取當(dāng)前服務(wù)器的key.key文件,替換到星云的server目錄下;
3、啟動(dòng)server目錄下的ThreadingTestServer.exe后會(huì)自動(dòng)打開(kāi)同級(jí)目錄下的ThreadingTestServerFront.exe,看到自動(dòng)彈出下面窗口后,表示連接正常。
注:星云測(cè)試在線客戶端的連接需要訪問(wèn)端口17262/17263.登陸之前需要保證網(wǎng)絡(luò)連接不存在限制。
打開(kāi)客戶端之前需要修改TTClient文件夾下的Server.cfg文件,配置localIP項(xiàng)為可以與服務(wù)端正常數(shù)據(jù)通信的本機(jī)IP地址。配置這個(gè)localIP的原因是,在客戶端需要接收來(lái)自服務(wù)端傳來(lái)的動(dòng)態(tài)數(shù)據(jù),配置本地的IP地址服務(wù)端才能把數(shù)據(jù)傳到客戶端中來(lái)。
配置IP地址完成后雙擊運(yùn)行TTClient/TT.exe文件進(jìn)入星云測(cè)試客戶端。選擇文件->登錄,輸入星云測(cè)試服務(wù)端的IP地址以及自己的用戶名和密碼即可登錄。如下圖所示。
1、 運(yùn)行星云測(cè)試TTWeb目錄下的bin\redis-2.4.5-win32-win64\32bit中的redis-server.exe
2、運(yùn)行星云測(cè)試TTWeb目錄下的startTTwebserver.bat
訪問(wèn)網(wǎng)頁(yè)報(bào)表網(wǎng)頁(yè)IP地址:3000
1, 登錄客戶端
2, 選中待插裝的空版本,版本處于解鎖狀態(tài)(解鎖狀態(tài):右鍵-解鎖狀態(tài))
3, javaForWindows目錄下的Server.cfg配置文件,[SERVER] ip填寫(xiě)實(shí)際ip地址,修改[PROPERTY]字段,與客戶端目錄下的Server.cfg同步
4、修改javaForWindows目錄下的ComplierPath.xml配置文件
同一個(gè)版本下可添加多個(gè)子模塊即proname,proname不能重復(fù),一個(gè)子模塊下可以配置多個(gè)工程路徑
ProName:子模塊名稱
Project_path:測(cè)試程序源碼文件路徑
Class_path:測(cè)試程序class文件路徑
注意:在進(jìn)行編譯插裝的時(shí)候,編譯插裝的項(xiàng)目是edu-service-user,edu-web-boss這兩個(gè)項(xiàng)目
5、修改javaForWindows目錄下tt_windows文件夾下Server.ini配置文件
Ip設(shè)置為客戶端的ip地址。
6、在命令行運(yùn)行autoCompiler.jar進(jìn)行編譯
jre\bin\java.exe -jar autoCompile.jar -e D:\J2EE_Enterprise_key_64bit0803\CompileToolsPkg\javaForWindows
注:-e后面的參數(shù)為ComplierPath.xml文件的目錄
7、在客戶端查看數(shù)據(jù),記得必須點(diǎn)擊重新加載文件
由于測(cè)試的時(shí)候需要運(yùn)行我們插裝后的代碼(編譯完成后會(huì)在java目錄同層生成src-instru目錄,src-instru目錄即為編譯插裝后的源碼);
具體操作:先將源碼目錄下未插裝的java目錄重命名為pre_java,再將編譯插裝生成的src-instru目錄命名為java。
并且插樁代碼的運(yùn)行需要我們的jar包,因此需要修改客戶的pom.xml文件來(lái)引入我們的jar服務(wù),加入到兩個(gè)<dependencies>之間,加入的代碼如下:
systemPath需要按JavaParser-j2ee.jar
和jeromq-0.3.0-SNAPSHOT.jar的絕對(duì)路徑填寫(xiě)
<dependency> <groupId>com.zoa</groupId> <artifactId>JavaParser-ZMQ</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>/D:/J2EE/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/client/MQ/jeromq-0.3.0-SNAPSHOT.jar</systemPath> </dependency>
在pom文件修改完成后即可打包發(fā)布
1 zookeeper環(huán)境搭建
zk解壓到指定目錄下,解壓后,將con文件夾下的zoo_sample.cfg拷貝一份,重命名為zoo.cfg,注意修改cfg的內(nèi)容如下,根據(jù)自己的目錄來(lái)修改:
windows系統(tǒng)下會(huì)使用zkServer.cmd開(kāi)啟,所以在bin目錄下找到zkServer.cmd,雙擊開(kāi)啟,這個(gè)是啟動(dòng)后的成功的圖
打開(kāi)以后就可以進(jìn)行打包了,在eclipse打然后打包生產(chǎn)者和消費(fèi)者(打包出來(lái)的是war包),將打包好的war包分別放在不同端口的tomcat中。
生產(chǎn)者啟動(dòng)tomcat:
生產(chǎn)者在啟動(dòng)tomcat時(shí),向注冊(cè)中心注冊(cè)自己提供的服務(wù)
消費(fèi)者啟動(dòng)tomcat:
消費(fèi)者在啟動(dòng)時(shí),向注冊(cè)中心訂閱自己所需的服務(wù),注冊(cè)中心返回生產(chǎn)者地址列表給消費(fèi)者,如果有變更,注冊(cè)中心將基于長(zhǎng)連接推送變更數(shù)據(jù)給消費(fèi)者。消費(fèi)者將設(shè)置的標(biāo)識(shí)通過(guò)一系列返回給生產(chǎn)者
打包完成,為使函數(shù)覆蓋率可視視圖代碼部分顯示正常,需要手動(dòng)修改源碼路徑:右鍵版本,點(diǎn)擊修改源碼路徑,選擇到pre_src目錄即可。
點(diǎn)擊添加:
啟動(dòng)測(cè)試用例
1,項(xiàng)目URL后面加teststars.jsp,訪問(wèn)teststars.jsp頁(yè)面進(jìn)行標(biāo)識(shí)設(shè)置
2,點(diǎn)擊set標(biāo)識(shí)進(jìn)行設(shè)置,設(shè)置成功頁(yè)面如下:
注:為了區(qū)分測(cè)試,我們?cè)谠O(shè)置的用戶姓名與星云客戶端當(dāng)前登錄用戶一致,
設(shè)置完成后頁(yè)面顯示是
消費(fèi)者通過(guò)web頁(yè)面設(shè)置標(biāo)識(shí)
生產(chǎn)者:通過(guò)穿透將消費(fèi)者設(shè)置的標(biāo)識(shí)值穿透到生產(chǎn)者中
頁(yè)面點(diǎn)擊登陸進(jìn)就會(huì)有相應(yīng)的測(cè)試數(shù)據(jù)傳輸過(guò)來(lái)(具體的展示見(jiàn)后面測(cè)試結(jié)果的第一個(gè)標(biāo)題:示波器的展示),數(shù)據(jù)接收完以后點(diǎn)擊停止,本條用例測(cè)試完畢
3, 生產(chǎn)者和消費(fèi)者再客戶端的覆蓋率展示:
消費(fèi)者在客戶端的展示:
生產(chǎn)者在客戶端的展示:
先選中測(cè)試用例,再點(diǎn)擊開(kāi)始后就可以進(jìn)行相應(yīng)的測(cè)試工作了,測(cè)試的時(shí)候示波器可以收到動(dòng)態(tài)數(shù)據(jù)并以波形圖的方式展示出來(lái)。
注:采集的動(dòng)態(tài)數(shù)據(jù)保存在服務(wù)端目錄下的VersionData文件夾下
為了讓測(cè)式人員更好的對(duì)缺陷進(jìn)行管理,采用測(cè)試用例、代碼、BUG相關(guān)聯(lián)方式,精準(zhǔn)測(cè)試云平臺(tái)使用了歷史BUG追查功能,這使得在版本迭代過(guò)程中,同一個(gè)測(cè)試用例所有的BUG情況一目了然,避免了因人員變動(dòng)或版本變動(dòng)導(dǎo)致的相同的BUG的排查時(shí)間,以及重復(fù)提交未被解決的BUG。
圖表 缺陷提交與管理
圖表 bug信息一目了然
覆蓋率可視化針對(duì)函數(shù)sc0、True、false 、both、Branch、C/DC 、MC/DC 7種覆蓋率給出可視化展示下面針對(duì)每一種覆蓋率展示界面給出說(shuō)明:(以sc0為例)
sc0為語(yǔ)句塊覆蓋,其顏色區(qū)分對(duì)象為基本語(yǔ)句塊(包括隱含不可見(jiàn)語(yǔ)句塊)其中綠色標(biāo)示被覆蓋的語(yǔ)句塊。藍(lán)色是未覆蓋到的語(yǔ)句塊。
計(jì)算方法為:覆蓋到塊/應(yīng)統(tǒng)計(jì)塊
用紅色的標(biāo)出來(lái)的表示sc0覆蓋率,函數(shù)列表右方為覆蓋率的展示:
雙向追溯是指通過(guò)運(yùn)行測(cè)試用例,實(shí)現(xiàn)測(cè)試用例與被測(cè)源碼間相互追溯。根據(jù)測(cè)試用、
查看相關(guān)被測(cè)源碼為正向追溯,根據(jù)被測(cè)源碼查看相關(guān)測(cè)試用例為逆向追溯。在測(cè)試用例列表中選擇測(cè)試用例,可以追溯到該測(cè)試用例的內(nèi)容描述信息,在模塊調(diào)用圖中顯示被測(cè)試到的函數(shù);也可以在模塊調(diào)用圖中,點(diǎn)擊相關(guān)的函數(shù),也可以追溯到相關(guān)的測(cè)試用例。該追溯技術(shù)方便了用戶查看和設(shè)計(jì)測(cè)試用例。
雙向追溯功能可以運(yùn)行的前提是,測(cè)試用例已經(jīng)被運(yùn)行過(guò),并且示波器收到了波形采集到了
動(dòng)態(tài)數(shù)據(jù)。
正向追溯是指:將測(cè)試用例和海量的代碼執(zhí)行信息自動(dòng)關(guān)聯(lián),可精確到函數(shù)級(jí)別及代碼塊級(jí)別;通過(guò)正向追溯可直接在代碼級(jí)定位測(cè)試現(xiàn)場(chǎng)故障和缺陷邏輯,并提供最后運(yùn)行的時(shí)序數(shù)據(jù);通過(guò)正向追溯自動(dòng)記錄產(chǎn)生功能對(duì)應(yīng)的詳細(xì)設(shè)計(jì)實(shí)現(xiàn),輔助軟件解耦和架構(gòu)分析。
正向追溯的優(yōu)勢(shì)是:迅速定位缺陷對(duì)應(yīng)的代碼執(zhí)行邏輯,幫助開(kāi)發(fā)快速修復(fù)缺陷,可追蹤難復(fù)現(xiàn)缺陷;精確、詳盡的記錄測(cè)試用例運(yùn)行的情況,為精準(zhǔn)軟件測(cè)試提供大量原生分析性數(shù)據(jù);可以進(jìn)行事后的缺陷分析、追蹤,輔助開(kāi)發(fā)進(jìn)行功能實(shí)現(xiàn)確認(rèn)。
生產(chǎn)者的正向追溯:
消費(fèi)者的正向追溯:
如圖:點(diǎn)擊測(cè)試用例追溯到這個(gè)用例運(yùn)行過(guò)得函數(shù),選中一個(gè)函數(shù),追溯到這個(gè)函數(shù)運(yùn)行過(guò)得控制流程圖的邏輯分支
以下是正向追溯到代碼和函數(shù)調(diào)用圖:
反向追溯是指:分析代碼關(guān)聯(lián)的功能,為研發(fā)分析系統(tǒng)和進(jìn)行一致性修改以及回歸測(cè)試分析提供精確數(shù)據(jù)。
反向追溯過(guò)程:點(diǎn)擊需要查看的函數(shù)或函數(shù)中的某行代碼,自動(dòng)列出可以測(cè)試到該函數(shù)或者程序分支的測(cè)試用例
生產(chǎn)者的反向追溯:
消費(fèi)者的反向追溯:
選擇函數(shù)追溯到運(yùn)行過(guò)該函數(shù)的測(cè)試用例,查看該函數(shù)的控制流程圖和代碼
點(diǎn)擊代碼,追溯到運(yùn)行過(guò)該代碼的測(cè)試用例
前置條件:版本有數(shù)據(jù),關(guān)聯(lián)源碼可在代碼視圖有顯示源碼,并且在簡(jiǎn)易控制流
程圖的分支塊有具體語(yǔ)句顯示,有覆蓋率數(shù)據(jù),可在簡(jiǎn)易控制流程圖顯示當(dāng)前覆蓋到的塊信息
簡(jiǎn)易控制流程圖功能,以語(yǔ)句塊的形式清晰的展示函數(shù)內(nèi)部的控制邏輯,界面上可以直觀的看出控制流各節(jié)點(diǎn)的測(cè)試覆蓋情況,在展示中,簡(jiǎn)易控制流程圖還可以通過(guò)顏色對(duì)每個(gè)程序塊進(jìn)行覆蓋率標(biāo)識(shí),在縮略圖中整個(gè)模塊的覆蓋率非常直觀。(背景色為綠色表示有測(cè)試用例覆蓋到該塊:以SC0覆蓋為參考標(biāo)準(zhǔn))
選擇客戶端所編譯的項(xiàng)目和版本:
顯示所選取編譯項(xiàng)目的一些基本信息,包括:
項(xiàng)目指標(biāo)信息、項(xiàng)目信息、版本信息、測(cè)試匯總信息、測(cè)試過(guò)程監(jiān)控趨勢(shì)圖、測(cè)試設(shè)備組成和分布圖、版本覆蓋率匯總圖、復(fù)雜度統(tǒng)計(jì)圖
項(xiàng)目匯總:
包含項(xiàng)目信息:項(xiàng)目的詳情信息
版本信息:版本的詳情信息
測(cè)試匯總信息:測(cè)試用例通過(guò)率:無(wú)BUG的測(cè)試用例
BUG累計(jì):測(cè)試用例運(yùn)行完畢后提交的BUG數(shù)
當(dāng)前版本覆蓋率(SC0):(執(zhí)行過(guò)可見(jiàn)段數(shù)/可見(jiàn)段數(shù))*100%的比例
覆蓋率增長(zhǎng):相比前一天的SC0增長(zhǎng)差值
高復(fù)雜度預(yù)警函數(shù)個(gè)數(shù):高復(fù)雜度的函數(shù)個(gè)數(shù)
測(cè)試用例列表:
顯示制作的測(cè)試用例的詳細(xì)信息,包括測(cè)試用例的名稱、創(chuàng)建時(shí)間、執(zhí)行時(shí)間、關(guān)聯(lián)函數(shù)、覆蓋率占比、運(yùn)行狀態(tài)、測(cè)試人員等
覆蓋率按日增長(zhǎng)曲線圖:
覆蓋率按日增長(zhǎng)曲線圖,讓管理者更好的把握測(cè)試過(guò)程
測(cè)試漏洞列表:
在一個(gè)程序中,往往有成百上千的函數(shù),這些函數(shù)有的是關(guān)聯(lián)整個(gè)程序核心、有的則是開(kāi)發(fā)人員棄而不用,但一直保留遲遲不肯刪除的,針對(duì)這些大量的函數(shù),“精準(zhǔn)測(cè)試”采用通過(guò)靜態(tài)、動(dòng)態(tài)指標(biāo)的綜合分析,在大量的程序函數(shù)中,通過(guò)計(jì)算直接篩選潛在的高危的測(cè)試漏洞,通過(guò)報(bào)表給予展示。
通過(guò)復(fù)雜度和覆蓋率進(jìn)行計(jì)算
通過(guò)函數(shù)調(diào)用上下文和覆蓋率進(jìn)行計(jì)算
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。