開發(fā)者測試-采用精準(zhǔn)測試工具對Spring Boot應(yīng)用進(jìn)行測試

      網(wǎng)友投稿 872 2022-05-29

      簡介:本文主要介紹把現(xiàn)今主流的springboot框架項目和精準(zhǔn)測試工具進(jìn)行結(jié)合和應(yīng)用,通過精準(zhǔn)測試的數(shù)據(jù)穿透、數(shù)據(jù)采集、測試用例與代碼的雙向追溯、數(shù)據(jù)分析等一系列精準(zhǔn)測試的特有功能,達(dá)到對項目質(zhì)量的保證。

      本次環(huán)境搭建分為基礎(chǔ)環(huán)境準(zhǔn)備、springboot環(huán)境搭建、精準(zhǔn)測試環(huán)境搭建、精準(zhǔn)測試與springboot環(huán)境對接等一整套完整的配置過程,用戶可以通過下圖中的流程圖確認(rèn)自己所部署過程中進(jìn)行到的階段點(diǎn),從而排查部署中可能遇見的問題。

      一,Spring Boot配置流程

      1,使用工具

      1, Eclipse Java Photon

      2, Spring Boot

      3, JDK 1.8

      4, MySQL 5.7

      5, Navicat for MySQL

      6, apache-maven-3.5.4

      7, zoa-agent-1.6.2

      8, J2EE_Enterprise_key_64bit0614

      9, 項目:Moxi(https://github.com/daleiwang/moxi)

      2, 配置所需的安裝

      1,安裝Eclipse、JDK、MySQL、Nodejs

      注:Eclipse和JDK的安裝和安裝包就用自己現(xiàn)有的就可以,星云測試將提供MySQL和Nodejs的安裝包,但必須前提是用戶自己的本機(jī)上

      不存在安裝的MySQL和Nodejs

      腳本安裝mysql和nodejs

      1、解壓星云提供的mysql-5.7.16-winx64安裝包和nodejs安裝包到服務(wù)器根目錄中(例如D盤根目錄)。

      2、右鍵以管理員身份運(yùn)行星云提供的自動化安裝工具mysql_nodejs_install.exe

      3、輸入nodejs的目錄,回車。如下圖所示:

      4、輸入mysql的絕對路徑(到bin),然后回車。等程序運(yùn)行完畢,mysql的root密碼被修改成root就可以手動關(guān)閉程序。

      2,安裝Spring Boot插件

      Eclipse安裝Spring Boot插件,Help-Eclipse Marketplace,搜索Spring Tools安裝STS,如圖:

      也可以通過 -:https://spring.io/tools/sts/all?進(jìn)行下載,

      下載以后安裝,Eclipse——Help——Install new Sofware,下一步、下一步安裝即可。

      3,安裝Maven

      Eclipse本身會帶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測試用mvn -v如下即安裝成功。

      1,Eclipse替換自帶為本地Maven

      Windows-Preferences-Maven-Installations-Add,路徑指向

      E:\apache-maven-3.5.4,加載完成后勾選新的apache-maven-3.5.4,Apply。

      2,定義本地Maven依賴庫

      修改E:\apache-maven-3.5.4\conf\settings.xml,添加如下一行代碼定義,例如:

      C:\Users\luxper.m2\repository,C:\Users\luxper.m2\repository是我的本地maven倉庫地址。

      Eclipse:Windows-Preferences-Maven-User Settings-Global Settings,Browse= E:\apache-maven-3.5.4\conf\settings.xml,Apply。

      3,新建工程和運(yùn)行工程

      選擇Spring Starter Project

      工程名字,定義為moxi,工程選擇Web下面的Web,然后Finesh,接下來會初始化下載Maven管理的相關(guān)jar包。

      工程結(jié)構(gòu)大致如下:

      工程——右鍵——Run As——Spring Boot App

      添加調(diào)試:

      為了解決每次修改代碼還要重新啟動工程,

      工程——右鍵——Spring Tools——Add Boot Devtools,那么每次修改類文件就會自動編譯了。

      4,整合Mybatis

      剛才已經(jīng)下載好了MySQL,現(xiàn)在我們添加pom.xml文件

      build標(biāo)簽加一行compile如下

      然后是mybatis和mysql:

         org.mybatis.spring.boot  mybatis-spring-boot-starter  1.2.0    mysql  mysql-connector-java  runtime

      在application.properties文件中添加數(shù)據(jù)源配置:、

      Navicat連接本地mysql,新建數(shù)據(jù)庫moxi,查詢執(zhí)行項目git頁面列出來的sql語句自動建立該項目需要的數(shù)據(jù)庫內(nèi)容。

      可以通過創(chuàng)建Model、Service和Controller驗證數(shù)據(jù)庫是否連接成功

      5,整合thymeleaf

      添加thymeleaf依賴

      配置application.properties

      引入文件:如圖,引入相應(yīng)的樣式、圖片和js文件,引入頁面文件:

      引入html:注demo和news里面也是html文件

      6,運(yùn)行程序

      Eclipse環(huán)境運(yùn)行:Run As——Spring Boot App

      打包運(yùn)行:右鍵項目Maven-Maven install,項目目錄target文件夾生成jar包,cmd運(yùn)行。項目初次運(yùn)行會下載所需依賴庫,消耗時間較長。

      在Eclipse環(huán)境運(yùn)行成功以后界面是這樣的:

      二,測試項目

      1, 下載工具及工具配置

      2, 從官網(wǎng)上下載星云測試工具:http://www.teststars.cc/

      下載以后進(jìn)行配置:

      2,星云測試服務(wù)端的配置

      TTLangage.config配置項說明:

      1、 運(yùn)行下的星云測試server目錄中ThreadingTestServer.exe,在右下的圖表中點(diǎn)注冊信息,查看其時間,星云測試有兩個月的體驗,若是超過兩個月,發(fā)生KEY過期,請聯(lián)系星云測試的工作人員,并提交服務(wù)端中的序列碼

      2、聯(lián)系星云工作人員獲取當(dāng)前服務(wù)器的key.key文件,替換到星云的server目錄下;

      3、啟動server目錄下的ThreadingTestServer.exe后會自動打開同級目錄下的ThreadingTestServerFront.exe,看到自動彈出下面窗口后,表示連接正常。

      3,星云測試客戶端的配置

      注:星云測試在線客戶端的連接需要訪問端口17262/17263.登陸之前需要保證網(wǎng)絡(luò)連接不存在限制。

      打開客戶端之前需要修改TTClient文件夾下的Server.cfg文件,配置localIP項為可以與服務(wù)端正常數(shù)據(jù)通信的本機(jī)IP地址。配置這個localIP的原因是,在客戶端需要接收來自服務(wù)端傳來的動態(tài)數(shù)據(jù),配置本地的IP地址服務(wù)端才能把數(shù)據(jù)傳到客戶端中來。

      配置IP地址完成后雙擊運(yùn)行TTClient/TT.exe文件進(jìn)入星云測試客戶端。選擇文件->登錄,輸入星云測試服務(wù)端的IP地址以及自己的用戶名和密碼即可登錄。如下圖所示。

      4,星云測試云報表平臺服務(wù)啟動

      1、 運(yùn)行星云測試TTWeb目錄下的bin\redis-2.4.5-win32-win64bit中的redis-server.exe

      2、運(yùn)行星云測試TTWeb目錄下的startTTwebserver.bat

      訪問網(wǎng)頁報表網(wǎng)頁IP地址:3000

      2,創(chuàng)建工程和版本并編譯

      1, 登錄客戶端

      2, 選中待插裝的空版本,版本處于解鎖狀態(tài)(解鎖狀態(tài):右鍵-解鎖狀態(tài))

      3, javaForWindows目錄下的Server.cfg配置文件,[SERVER] ip填寫實際ip地址,修改[PROPERTY]字段,與客戶端目錄下的Server.cfg同步

      4、修改javaForWindows目錄下的ComplierPath.xml配置文件

      同一個版本下可添加多個子模塊即proname,proname不能重復(fù),一個子模塊下可以配置多個工程路徑

      ProName:子模塊名稱

      Project_path:測試程序源碼文件路徑

      Class_path:測試程序class文件路徑

      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)擊重新加載文件

      由于測試的時候需要運(yùn)行我們插裝后的代碼(編譯完成后會在java目錄同層生成src-instru目錄,src-instru目錄即為編譯插裝后的源碼);

      具體操作:先將源碼目錄下未插裝的java目錄重命名為pre_java,再將編譯插裝生成的src-instru目錄命名為java。

      并且插樁代碼的運(yùn)行需要我們的jar包,因此需要修改客戶的pom.xml文件來引入我們的jar服務(wù),加入到兩個之間,加入的代碼如下:

      systemPath需要按JavaParser-j2ee.jar

      和jeromq-0.3.0-SNAPSHOT.jar的絕對路徑填寫

        com.zoa  JavaParser-ZMQ  1.0  system  /D:/J2EE/client/MQ/JavaParser-J2EE.jar  com.zoa  jeromq  1.0  system  /D:/J2EE/client/MQ/jeromq-0.3.0- SNAPSHOT.jar

      在pom文件修改完成后即可打包發(fā)布

      編譯以后達(dá)成jar包(具體的打包方法參考6,運(yùn)行項目)

      打包完成,為使函數(shù)覆蓋率可視視圖代碼部分顯示正常,需要手動修改源碼路徑:右鍵版本,點(diǎn)擊修改源碼路徑,選擇到pre_java目錄即可。

      3,測試前準(zhǔn)備

      1、添加數(shù)據(jù)傳輸配置文件

      數(shù)據(jù)傳輸配置文件是保證運(yùn)行的數(shù)據(jù)可以回傳到星云服務(wù)器的。配置方法是在具體的客戶測試環(huán)境下的usr/local/bin文件夾下新建配置文件config.cfg 文件內(nèi)容如下:

      state=1

      IP=(IP值寫星云測試服務(wù)端IP,注意要大寫)

      (如果發(fā)布環(huán)境是windows環(huán)境,需要在C盤根目錄下配置上述文件)

      2,agent啟動項目

      cmd輸入命令:

      java -javaagent:E:\zoa-agent-1.6.2\zoa-agent-1.6.2.jar -jar E:\moxi-0.0.1-SNAPSHOT.jar

      E:\zoa-agent-1.6.2\zoa-agent-1.6.2.jar =agent路徑

      E:\moxi-0.0.1-SNAPSHOT.jar =項目路徑

      開發(fā)者測試-采用精準(zhǔn)測試工具對Spring Boot應(yīng)用進(jìn)行測試

      出現(xiàn)這樣的界面表示運(yùn)行成功:

      3,設(shè)置cookie

      1,項目URL后面加teststars.jsp,訪問teststars.jsp頁面進(jìn)行cookie設(shè)置

      2,點(diǎn)擊setcookie進(jìn)行設(shè)置,設(shè)置成功頁面如下:

      注:為了區(qū)分測試,我們在設(shè)置的用戶姓名與星云客戶端當(dāng)前登錄用戶一致,

      4,編寫測試用例

      點(diǎn)擊添加:

      5,項目測試

      訪問地址:http://localhost:8080/admin/login

      頁面登陸進(jìn)去以后,假如測試內(nèi)容管理的文章管理的測試用例,則選擇內(nèi)容管理的文章管理的用例,點(diǎn)擊開始,在頁面上點(diǎn)擊內(nèi)容管理的文章管理,就會有相應(yīng)的測試數(shù)據(jù)傳輸過來(具體的展示見后面測試結(jié)果的第一個標(biāo)題:示波器的展示),數(shù)據(jù)接收完以后點(diǎn)擊停止,本條用力測試完畢

      三,測試結(jié)果

      1,示波器波形展示

      先選中測試用例,再點(diǎn)擊開始后就可以進(jìn)行相應(yīng)的測試工作了,測試的時候示波器可以收到動態(tài)數(shù)據(jù)并以波形圖的方式展示出來。

      注:采集的動態(tài)數(shù)據(jù)保存在服務(wù)端目錄下的VersionData文件夾下,對應(yīng)版本的動態(tài)數(shù)據(jù)保存在相應(yīng)的版本號目錄下(版本號可在數(shù)據(jù)庫management表的version表中查看)

      2,缺陷管理

      為了讓測式人員更好的對缺陷進(jìn)行管理,采用測試用例、代碼、BUG相關(guān)聯(lián)方式,精準(zhǔn)測試云平臺使用了歷史BUG追查功能,這使得在版本迭代過程中,同一個測試用例所有的BUG情況一目了然,避免了因人員變動或版本變動導(dǎo)致的相同的BUG的排查時間,以及重復(fù)提交未被解決的BUG。

      圖表 缺陷提交與管理

      圖表 bug信息一目了然

      3,覆蓋率

      覆蓋率可視化針對函數(shù)sc0、True、false 、both、Branch、C/DC 、MC/DC 7種覆蓋率給出可視化展示下面針對每一種覆蓋率展示界面給出說明:(以sc0為例)

      sc0為語句塊覆蓋,其顏***分對象為基本語句塊(包括隱含不可見語句塊)其中綠色標(biāo)示被覆蓋的語句塊。藍(lán)色是未覆蓋到的語句塊。

      計算方法為:覆蓋到塊/應(yīng)統(tǒng)計塊

      用紅色的標(biāo)出來的表示sc0覆蓋率,函數(shù)列表右方為覆蓋率的展示:

      4,雙向追溯

      雙向追溯是指通過運(yùn)行測試用例,實現(xiàn)測試用例與被測源碼間相互追溯。根據(jù)測試用、

      查看相關(guān)被測源碼為正向追溯,根據(jù)被測源碼查看相關(guān)測試用例為逆向追溯。在測試用例列表中選擇測試用例,可以追溯到該測試用例的內(nèi)容描述信息,在模塊調(diào)用圖中顯示被測試到的函數(shù);也可以在模塊調(diào)用圖中,點(diǎn)擊相關(guān)的函數(shù),也可以追溯到相關(guān)的測試用例。該追溯技術(shù)方便了用戶查看和設(shè)計測試用例。

      雙向追溯功能可以運(yùn)行的前提是,測試用例已經(jīng)被運(yùn)行過,并且示波器收到了波形采集到了動態(tài)數(shù)據(jù)。

      1,正向追溯

      正向追溯是指:將測試用例和海量的代碼執(zhí)行信息自動關(guān)聯(lián),可精確到函數(shù)級別及代碼塊級別;通過正向追溯可直接在代碼級定位測試現(xiàn)場故障和缺陷邏輯,并提供最后運(yùn)行的時序數(shù)據(jù);通過正向追溯自動記錄產(chǎn)生功能對應(yīng)的詳細(xì)設(shè)計實現(xiàn),輔助軟件解耦和架構(gòu)分析。

      正向追溯的優(yōu)勢是:迅速定位缺陷對應(yīng)的代碼執(zhí)行邏輯,幫助開發(fā)快速修復(fù)缺陷,可追蹤難復(fù)現(xiàn)缺陷;精確、詳盡的記錄測試用例運(yùn)行的情況,為精準(zhǔn)軟件測試提供大量原生分析性數(shù)據(jù);可以進(jìn)行事后的缺陷分析、追蹤,輔助開發(fā)進(jìn)行功能實現(xiàn)確認(rèn)。

      如圖:點(diǎn)擊測試用例追溯到這個成而是用例運(yùn)行過得函數(shù),選中一個函數(shù),追溯到這個函數(shù)運(yùn)行過得控制流程圖的邏輯分支

      以下是正向追溯到代碼和函數(shù)調(diào)用圖:

      2,反向追溯

      反向追溯是指:分析代碼關(guān)聯(lián)的功能,為研發(fā)分析系統(tǒng)和進(jìn)行一致性修改以及回歸測試分析提供精確數(shù)據(jù)。

      反向追溯過程:點(diǎn)擊需要查看的函數(shù)或函數(shù)中的某行代碼,自動列出可以測試到該函數(shù)或者程序分支的測試用例

      選擇函數(shù)追溯到運(yùn)行過該函數(shù)的測試用例,查看該函數(shù)的控制流程圖和代碼

      點(diǎn)擊代碼,追溯到運(yùn)行過該代碼的測試用例

      5,簡易流程圖的展示

      前置條件:版本有數(shù)據(jù),關(guān)聯(lián)源碼可在代碼視圖有顯示源碼,并且在簡易控制流

      程圖的分支塊有具體語句顯示,有覆蓋率數(shù)據(jù),可在簡易控制流程圖顯示當(dāng)前覆蓋到的塊信息

      簡易控制流程圖功能,以語句塊的形式清晰的展示函數(shù)內(nèi)部的控制邏輯,界面上可以直觀的看出控制流各節(jié)點(diǎn)的測試覆蓋情況,在展示中,簡易控制流程圖還可以通過顏色對每個程序塊進(jìn)行覆蓋率標(biāo)識,在縮略圖中整個模塊的覆蓋率非常直觀。(背景色為綠色表示有測試用例覆蓋到該塊:以SC0覆蓋為參考標(biāo)準(zhǔn))

      6,報表的展示

      選擇客戶端所編譯的項目和版本:

      顯示所選取編譯項目的一些基本信息,包括:

      項目指標(biāo)信息、項目信息、版本信息、測試匯總信息、測試過程監(jiān)控趨勢圖、測試設(shè)備組成和分布圖、版本覆蓋率匯總圖、復(fù)雜度統(tǒng)計圖

      項目匯總:

      包含項目信息:項目的詳情信息

      版本信息:版本的詳情信息

      測試匯總信息:測試用例通過率:無BUG的測試用例

      BUG累計:測試用例運(yùn)行完畢后提交的BUG數(shù)

      當(dāng)前版本覆蓋率(SC0):(執(zhí)行過可見段數(shù)/可見段數(shù))*100%的比例

      覆蓋率增長:相比前一天的SC0增長差值

      高復(fù)雜度預(yù)警函數(shù)個數(shù):高復(fù)雜度的函數(shù)個數(shù)

      測試用例列表:

      顯示制作的測試用例的詳細(xì)信息,包括測試用例的名稱、創(chuàng)建時間、執(zhí)行時間、關(guān)聯(lián)函數(shù)、覆蓋率占比、運(yùn)行狀態(tài)、測試人員等

      覆蓋率按日增長曲線圖:

      覆蓋率按日增長曲線圖,讓管理者更好的把握測試過程

      測試漏洞列表:

      在一個程序中,往往有成百上千的函數(shù),這些函數(shù)有的是關(guān)聯(lián)整個程序核心、有的則是開發(fā)人員棄而不用,但一直保留遲遲不肯刪除的,針對這些大量的函數(shù),“精準(zhǔn)測試”采用通過靜態(tài)、動態(tài)指標(biāo)的綜合分析,在大量的程序函數(shù)中,通過計算直接篩選潛在的高危的測試漏洞,通過報表給予展示。

      ? 通過復(fù)雜度和覆蓋率進(jìn)行計算

      ? 通過函數(shù)調(diào)用上下文和覆蓋率進(jìn)行計算

      ?

      自動化測試

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:OpenCV中的圖像處理 —— 直方圖大章(查找、繪制及分析+均衡化+二維直方圖+直方圖反投影)
      下一篇:Android簡介【Android專題1】
      相關(guān)文章
      亚洲电影日韩精品| 国产成人久久精品亚洲小说| 亚洲国产午夜中文字幕精品黄网站| 亚洲AV无码专区在线观看成人 | 亚洲啪啪AV无码片| 国产日韩成人亚洲丁香婷婷| 午夜亚洲国产理论片二级港台二级| 亚洲人成网站在线播放2019| 亚洲日韩精品国产3区| 亚洲综合在线一区二区三区 | 亚洲免费观看在线视频| 亚洲欧洲日产国码二区首页 | 亚洲精品tv久久久久| 亚洲片一区二区三区| 国产亚洲精品无码专区| 国产综合精品久久亚洲| 亚洲中文字幕日产乱码高清app| 自拍偷自拍亚洲精品第1页| 奇米影视亚洲春色| 亚洲91av视频| 亚洲国产精品张柏芝在线观看| 亚洲AV无码一区二区三区在线| 久久久久亚洲国产| 久久久久久亚洲精品无码| 九月婷婷亚洲综合在线| 国产AV无码专区亚洲AWWW| 亚洲不卡av不卡一区二区| 亚洲最新永久在线观看| 亚洲国产精品乱码在线观看97| 亚洲一区精彩视频| 久久亚洲精品11p| 亚洲一区二区高清| 亚洲ⅴ国产v天堂a无码二区| 91大神亚洲影视在线| 亚洲综合欧美色五月俺也去| 亚洲国产成人AV网站| 激情综合色五月丁香六月亚洲| 亚洲av福利无码无一区二区| 亚洲大尺码专区影院| 亚洲精品无码不卡在线播放| 2048亚洲精品国产|