主頁 >  其他 > 測驗架構師如何解讀介面測驗平臺的各種爭議

測驗架構師如何解讀介面測驗平臺的各種爭議

2021-07-03 06:21:19 其他

導讀

      先從 TesterHome 上關于測驗平臺的話題談起,再來談談介面測驗的痛點是什么,然后是itest work介面測驗的解決方案,希望通過本篇的論述,大家對什么是好的平臺能達成統一的認識,且通過創新做出好用,對測驗人友好的平臺,

      最近 TesterHome 上,關于測驗平臺的討論很激烈,我本人是支持平臺的,但是現在好多平臺都是 KPI 導向,拿介面測驗平臺來說,除了少數做得不錯之外,看到好多不是 demo ,就是 jmeter ,postman 的 web 化,不否認做平臺,對技術多少還是有提升(大多數是 CRUD,僅僅是從 0 到 1),但是如果平臺沒人用,這平臺就是失敗的,證明有一定的技術實力,除了開發平臺,還有很多更高效的方式,比如為開源軟體提交 PR,熟讀開源中件間代碼,掌握測驗前后移的技術,為團隊開發實用測驗小工具等,

        隨著微服務架構理念,云計算,容器技術的普及,DevOps 在 it 界漸成共識,并成為主流開發模式,在 DevOps 快速迭代中測驗成為快速交付的一大短板,降本增效迫在眉睫,反過來,平臺只要好用,就是好的平臺,什么是好的平臺,一定是要能做到降本增效

         先從兩個主流工具的局限性談起,postman 和 jmeter 是兩個比較主流的介面測驗工具,當然 jmeter 用于壓測和介面自動化都可以,這兩個工具都解決了介面測驗的基本問題,但仍然存在不少問題,我羅列了以下五點:

 1. 可管理性不強

        我認為這些工具在一定程度上就是個面向個人的“單兵武器”, 基本上無可管理性,JMX,或是 JSON 檔案,不好管理,協同就更是難上加難,市面上對他們 web 化的價值,也就是可管理這一點,更深層次的痛點并沒有觸達,

2. 對測驗人員不足夠“友好”

      用過 QTP,LR 之類的對測驗人員都知道,傻瓜化,不懂代碼,一樣用得很開心,這對大多數不會寫代碼的測驗人員來說,確實是“福報”,斷言,引數化,資料驅動都非常簡單,然而這些工具都是商業化且使用場景相對固定,并無法快速回應互聯網不斷變化的測驗需求,反觀 postman 或者 jmeter,雖然免費了但是又有不少功能需要你二次開發,所以說沒有”普適性”,對于一些代碼基礎薄弱的同學來說,遇到定制化的需求往往束手無策,檢驗”普適性”的標準,就是是否傻瓜化,這決定了門檻的高低;高級使用人員,可以二開及使用一些高級特性,傻瓜化不是提倡,測驗人員不會代碼就是好事,平臺想要推廣得好,普適性很重要,打個不太恰當的比方,就算會寫代碼,也沒多少人用 VI 或是記事本寫,都要用 IDE 工具,為什么?效率高呀,會寫代碼,可以做很多實用的測驗小工具,還是非常棒的!

3. 對介面反向用例或混沌測驗支持不夠

      雖然很多平臺支持資料驅動測驗,但是對介面反向用例或混沌測驗支持不夠,先從一下真實生產事故講起,朋友公司因第三方介面導致了服務器宕機,最后查到的原因是,掃碼,傳入的資料是一個比較長的亂七八糟的字串,沒按要求傳正確的值,結果服務器,死回圈掛掉了,介面測驗時,無法窮舉所有引數值,在 postman 和 jmeter 中都有資料驅動,但是我認為采用列舉的方式來設定引數值,然后通過資料驅動的方式來執行測驗,對人的依賴太大,后面我再講介面混沌測驗,瞬間可以完成笛卡爾積式的介面混沌測驗,從另一個視角來實作,且和介面資料結構無關,

4. 理不清介面間的呼叫關系

     縱使寫了很多介面用例,但是對介面間的關系依然是”抓瞎”,很多時候我們借助于呼叫鏈跟系統,但是對于平臺上的介面用例,呼叫鏈這張網又太大,和介面用例也不完全匹配,就算匹配,且呼叫鏈跟蹤突出的是,呼叫上的時間順序,并不突出他們之間的依賴關系,以及是什么樣的依賴關;也不是所有系統都用上了呼叫鏈路跟蹤,大多不是微服務架構的專案,這塊想用呼叫鏈跟系統(如 SkyWalking Zipkin、Pinpoint 等)還是不好辦的,介面用例間,實際上就存在依賴關系,如 A 介面,要依賴取 token 介面,同時 A 還依賴 B 介面的回應資料中提取的引數等等,這在 postman ,jmeter 中,雖然介面依賴關系事實上存在,但只能人工去理,沒有一目了然的可視化界面來展示依賴關系,當一個介面改動了,也不方便評估,對其他介面的影響;且通過直觀的依賴關系,可促使挖掘更多的測驗場景,

5. 低代碼模式對測驗能效提出更高的要求

    研發都低代碼了,介面測驗卻還沒有低代碼,變相抬高了介面測驗門檻,當然這個對于測驗來說要求也比較高,事實上這也不利于提效,肯定有人要反對了,測開就是要寫代碼呀,能寫代碼這很好呀,明確的說,這是五年前流行的觀點了,我們要的不是代碼的堆砌,而是高質量的有效代碼;測開會寫代碼,做出來的產品和解決能效之間并不是等號!脫離方法論,脫離工程文化等能加快交付途徑的方方面面,只是“秀代碼”,沒多大價值,既然要做平臺,出發點肯定是團隊提效,而不是單兵作戰;另外從公司團隊組建的角度來說,也不可能全是測開,平臺化如果不考慮業務測驗的融入,不考慮對非測開人員的“普適性”,就沒法解決木桶效應的問題,我認為這個平臺是失敗的,不管如何分工,團隊的整體能效沒上去,這平臺就是測開自嗨的平臺,現在開發都在提低代碼了,開發效率會大大提升,測驗的壓力更大,測驗也要低代碼化,才能也一起提效,否則測驗這塊的短板更短,下面我也會再講講對于測驗低代碼化的一些思考,

        現在大家對低代碼的討論非常多,看低的也大有人在,我這里就不展開說了,但有一點我認為低代碼會成為趨勢,無服務對低代碼更是推波助瀾,目前比較火的低代碼平臺,比較有名的都是國外的,微軟也有低代碼平臺,拿我我們公司的低代碼平臺來說,剛畢業的新人,入職三天,就能實作業務開發了,效率還是杠杠的!且通過注解,單元測驗不需要寫一行代碼了,加少量的注解就可以了,比手寫 junit 測驗類,省至少 2 倍的時間 ,

   上面是我個人認為的介面測驗中最痛的點,我看到的介面測驗平臺,不解決這些剛需,只是通過 web 封裝工具的話意義不大,從老板的角度來說,沒增效,投人力做這事就不值,大家都知道提問題簡單,難在解決問題,下面我來說我的解決方案是什么?

 解決方案

下面就來談談我設計的一站式敏捷測驗管理平臺,針對我羅列的五個痛點是如何解決的,

 1 關于管理協作,只要是平臺化,天然就解決這問題,

2 對測驗人員友好,主要是可用性,可維護性,

   postman 和 jmeter 雖然受到普遍的歡迎,但從自動化角度來說存在一些硬傷,我舉兩個設計上的具體例子:

        (1) postman 前后置腳本及簽名等和介面用例耦合在一起,不方便維護,比如我需要對請求簽名,如果簽名演算法改了,我得來改介面 用例,如果有 100 個介面,這改起來太可怕了,要是解偶,只要改簽名演算法本身,其他介面中是選擇參考這個演算法,就不存在這種痛苦;
      (2)引數維護不面向對像且不能自動轉換 , 如引數得復雜 json 只能寫 json ,通常大家對表單比較熟悉, 批量維護 KV 自動轉 JSON ,如是復雜對像,支持 dto.user.id 這種復雜 kye 轉 josn 就爽得多,完全是向面對像的式在維護引數;
 
      直接上圖我是怎么解決的?

      下圖就是插件化解耦,維護好相關插件,在介面用例中,只是下拉選而已,

       

 

 

 

 
          引數維護方便很多,個人非常不喜歡 json schema 的方式,KV 可方便轉復雜 JSON ,又可下接寫復雜 JSON,這才是照顧使用人的效率和提升便利,XXX.XXX.XXX 這種才是以面向前對像的思維維護引數,且更切近表單屬性,
 

 



3 對介面反向用例或混沌測驗支持不夠,

一說反向測驗大家第一反應是,通過資料驅動來測驗,如果復雜 JSON 資料結構,資料驅動按傳統的方式,對測驗人員來說一點不方便,這兩個我們都是這樣來解決的介面反向或是混沌測驗,只需要配置好混沌規則 ,然后以“撞庫”的形式排列組合,替換掉正向介面用例中的引數值去執行撞庫,瞬間完成介面健壯性測驗“撞庫時”先單個一個一個去換, 然后再排例組合,

 
看下混沌工程的執行結果:


     資料驅動,也是按面向對像的方式,方便復雜 JOSN 的結構,傳統的資料驅動,只方便 KV 方式,復雜對像,表達起來費勁,我們依然采用 xxx.xx.xx 這種對像屬性訪問形式,依然采用 xxx.xx.xxx 這種對像屬性訪問形式,即支持簡單 KV ,又能一行表示一個 json 對像,直觀又易于理解



 4 對介面間的關系理不清

前面的論述,就不重復了,介面間只要存在引數參考,就必須存在依賴關系,完全可以根據依賴關系推匯出來,在介面測驗場景中,只要選擇了一些用例,自動加入依賴的介面用例,并排好執行順序,同時還能自動檢查回圈依賴,

不但可以查看依賴拓補,還可以在維護介面用例時,自動檢查回圈依賴,如檢測到,給出提示

 

 

自動回圈依賴,如下圖給出了具體的回圈依賴資訊

 

 

5 研發都低代碼了,介面測驗卻還沒有低代碼

   這其實變相抬高了介面測驗門檻,同時也不利于提效,這塊的爭議最多,不再累述,可能測驗人員,平時寫代碼少,低代碼會使一些人覺得剝奪他們寫代碼的權利;也有人說低代碼,容易讓大家變成工具的奴隸,低代碼只是為了提效,把重復作業工具化,并不禁錮使用人員的思想,從公司的角度來說,老板希望你把時間花在,重要的事情上, 重復的事情,工具化,平臺化,

比如初級一點的,可以在斷言以及提取引數時,通過拖拽的方式,高級玩法就是 bpm 那樣的編排,就像作業流一樣,拖拉的方式來編排,通過編排實作介面業務場景的測驗,另外,還可以重用介面用例,把他轉化為 JMX 檔案,這樣一個用例或是場景,介面測驗可用,壓測也重用介面用例,以一當二用,

 

 


 

 

        寫到這里也幾千字了,這只是我個人之言,不對之處歡迎大家討論拍磚,看 TesterHome 上關于平臺的討論,很是激烈;我在這里拋磚引玉,只要是有益的討論,對行業也是有利,如果能讓大家靜下心來,一起來探討什么是好的介面測驗平臺,也是好事,少卷一些,少一些 KPI,做真正好用的對測驗人友好的測驗平臺還是很香的,

好些人做平臺是為了面試時加分,或是多些談資,這太急功近利了;我看過好多只是個 demo 的平臺,在這里我就不一一列舉代碼地址了,多數是為了加群吸粉,這留得住人嗎!!我表示嗤之以鼻!一個好的面試官用一個爛平臺也忽悠不了他,有能力,不管是編碼能力,還是綜合能力強,有很多方方面面來體現,這里就不展開說了,

這貼子肯定少不了爭議,歡迎大家加入 TesterHome 反智討論群,我也在群里方便大家來討論,本人是開源免費的 www.itest.work ,一站式敏捷測驗管理平臺作者, 讓測驗變得簡單、敏捷!是 itestwork 的執念,寫這貼子,也是有感而發,我們一直在改進的路上,3 年了一直在維護中,上面的痛點,必須要全面解決;當前正在豐富壓測模塊及實作可視化介面編排 大家可以期待,

 

 


官網訪問地址:www.itest.work

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/288870.html

標籤:其他

上一篇:hdu1232 并查集總結

下一篇:Electron入門學習筆記

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more