整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          中控技術申請web端頁面檢測方法專利,實現了web端

          中控技術申請web端頁面檢測方法專利,實現了web端檢測的自動及全面性,最終提升了檢測效率

          融界2024年3月15日消息,據國家知識產權局公告,中控技術股份有限公司申請一項名為“web端頁面檢測方法“,公開號CN117707921A,申請日期為2023年9月。

          專利摘要顯示,本發明涉及一種web端頁面檢測方法,屬于計算機技術領域,包括:獲取待檢測web端的目標頁面的前端元素;基于操作圖標的類別屬性,獲取與目標頁面關聯的新界面的前端元素,新界面為通過目標頁面中的操作圖標直接及間接調用的新顯示框;基于獲取的目標頁面及新界面的前端元素,獲取待檢測web端頁面中的檢測內容;根據基準文件對檢測內容進行分析,得到檢測結果。本發明的檢測過程中,由于利用前端元素的操作圖標的類別屬性,對各操作圖標的遍歷觸發,從而訪問了各種場景下頁面,實現了待檢測web端的各場景下頁面動態模擬,以在動態模擬變化過程中批量獲取待檢測內容,實現了web端檢測的自動及全面性,最終提升了檢測效率。

          本文源自金融界

          眾號搜索:TestingStudio 霍格沃茲測試開發的干貨都很硬核

          本文霍格沃茲測試學院學員月關學習實踐筆記

          一、應用背景

          因為本章的內容是使用jq工具配合完成,因此在開始部分會先花一定的篇幅介紹jq機器使用,如果讀者已經熟悉jq,可以直接跳過這部分。

          先來看應用場景,App 經常會有一些信息展示的列表頁,比如商家的菜品、股票的公司、文章的列表展示等,例如下面這樣:

          菜品不夠吃的話~不是,是菜品數量較少不夠測試的量,假如我們想要測試幾百個菜品時,會不會在刷的時候是否有性能影響,展示是否正常,列表展示的邊界值測試等;

          而要測就得有數據展示,這個時候要是通過后端去找或者造這么多數據是有點麻煩的,其實我們這個測試的測試點就是要測試前端頁面的展示和性能,只要有這部分數據就可以,無所謂數據是否真實從數據庫得來。

          這個時候可以就可以利用mock的手段,對這種大數據進行等價類的生成,使前端可以拿到這類數據即可,而Charles正是我們實現手工mock測試的利器之一!

          二、jq 簡介

          2.1 jq 的概述與用途

          按慣例,先看官網對jq的解釋:

          jq 官網地址:https://stedolan.github.io/jq/

          大概意思就是輕量靈活的Json處理命令行。

          用途

          說到這大概有些人有點感覺它能用來做什么了,為啥手工mock要使用jq了?沒錯!要用它來處理接口返回的json數據以達到mock的效果。

          2.2 jq 的下載安裝

          • Mac:Mac還是一如既往的簡單(香~),裝了Homebrew 的話一條命令brew install jq即可
          • 其他系統:jq 的官網很貼心,給出了各個系統的下載方式及其相關所需下載工具的鏈接,具體的就查看官網吧,鏈接如下

          https://stedolan.github.io/jq/download/

          2.3 jq 的基本使用

          • 基本過濾 .

          最簡單的過濾,.這是一個過濾器,它接受輸入,并將其不變地生成為輸出。

          簡單的說就是原樣輸出來:

              $ echo '{"jq": "jqTest"}' | jq '.'
              {
                "jq": "jqTest"
              }
          • 對象過濾 .key、.key1.key2、.["key"]

          可以通過.key或.key1.key2的方式來獲取對應的value,這樣的方式是不是有點像jsonpath?

              $ echo '{"jq": {"jqTest": 1} }' | jq '.jq'
              {
                "jqTest": 1
              }
          
              $ echo '{"jq": {"jqTest": 1} }' | jq '.jq.jqTest'
              1
          
          
              $ echo '{"jq": {"jqTest": 1} }' | jq '.["jq"]'
              {
                "jqTest": 1
              }
          • 索引過濾 .key[index]、.key[ startIndex: endIndex]

          其實就是在對象過濾的基礎上加個索引而已,學過編程的都懂的~ 左閉右開,當然是針對數組的操縱,這里就以一種對象過濾寫法基礎上舉例子,

          .key[index]

              $ echo '{"jq": ["jqTest",1] }' | jq '.jq[0]'
              "jqTest"

          .key[ startIndex: endIndex]

              $ echo '{"jq": ["jqTest",1] }' | jq '.jq[0:1]'
              [      "jqTest"    ]
          • 對象構建 {} 、[]

          可以利用{} 、[]構建新的對象(數組)

              $ echo '{"jq": ["jqTest",1] }' | jq '{ newJq: .jq[1], }'
              {
                "newJq": 1
              }

          如果其中一個表達式有多個結果,那么輸出也會產生多個結果

              $ echo '{"user":"stedolan","titles":["JQ Primer", "More JQ"]}' |jq '{user, title: .titles[]}'
              {
                "user": "stedolan",
                "title": "JQ Primer"
              }
              {
                "user": "stedolan",
                "title": "More JQ"
              }

          如果key是不存在的,value將會賦值為null

              $ echo '{"user":"stedolan","titles":["JQ Primer", "More JQ"]}' |jq '{user111, title: .titles[]}'
              {
                "user111": null,
                "title": "JQ Primer"
              }
              {
                "user111": null,
                "title": "More JQ"
              }

          如果再鍵的周圍加括號就意味著它將作為表達式進行計算。

              $ echo '{"user":"stedolan","titles":["JQ Primer", "More JQ"]}' |jq '{(.user): .titles[]}'
              {
                "stedolan": "JQ Primer"
              }
              {
                "stedolan": "More JQ"
              }
          • 其他常見用法

          計算

                  echo "10" | jq '(.+2)*5'
                  echo null | jq '{a: 1} + {b: 2} + {c: 3} + {a: 42}'
                  echo '["xml", "yaml", "json"]' | jq '. - ["xml"]'
                  echo '{"a":5}' | jq ‘.a+=10'

          獲取長度

                  echo '[[1,2], "string", {"a":2}, null]' | jq '.[] | length’
          • 數組運算

          這里要特別介紹一下數組的運算操作,也是下面實現目標的手段

          jq 對于數組可以有并集(’+’)和差集(’-’)的操作:

          并集('+'):有數組a,b; a+b就會得到一個包含所有a,b數組元素的新數組:

                  $ echo '{"a": [1,2,3] ,"b": [3,4,5]}' | jq '.a+.b'
                  [          1,          2,          3,          3,          4,          5        ]

          差集('-'):有數組a,b; a-b就會得到一個只包含a中元素,不包含b中元素的新數組:

                  $ echo '{"a": [1,2,3] ,"b": [3,4,5]}' | jq '.a-.b'
                  [          1,          2        ]
          • 更多用法

          更多用法可參考官網:

          https://stedolan.github.io/jq/manual/#Basicfilters

          3、Mock 實現

          3.1 實現目標

          如下圖中的科普推薦欄目中有 2 則科普文章,現在想要mock幾十甚至上百篇文章或廣告。

          3.2 數據準備

          • 抓取接口的響應json報文如下:
              {
                  "code": 1,
                  "msg": null,
                  "data": {
                      "pageNumber": 0,
                      "pageSize": 10,
                      "totalElements": 12,
                      "totalPages": 2,
                      "pageList": [{
                          "id": 18,
                          "title": "老年癡呆癥有哪些危害?",
                          "type": "patient",
                          "img": "https://greenvalley.oss-cn-shanghai.aliyuncs.com/hospital/a295c2081459450ba6679db48d6a2471_700_360.png",
                          "content": "<p>https://fx.wxbjq.net.cn/preview/6cAH</p>"
                      }, {
                          "id": 17,
                          "title": "你了解老年癡呆是如何發病的嘛?",
                          "type": "patient",
                          "img": "https://greenvalley.oss-cn-shanghai.aliyuncs.com/hospital/953fc541af7b4576b233d2d6b364bddf_700_360.png",
                          "content": "<p>https://fx.wxbjq.net.cn/preview/6cAK</p>"
                      }]
                }
              }
          • 我們將數據存入json文件中,然后賦值給一個變量
              $ mockData=$(cat /tmp/guanggao.json)
              $ echo "$mockData"
              {
                  "code": 1,
                  "msg": null,
                  "data": {
                      "pageNumber": 0,
                      "pageSize": 10,
                      "totalElements": 12,
                      "totalPages": 2,
                      "pageList": [{
                          "id": 18,
                          "title": "老年癡呆癥有哪些危害?",
                          "type": "patient",
                          "img": "https://greenvalley.oss-cn-shanghai.aliyuncs.com/hospital/a295c2081459450ba6679db48d6a2471_700_360.png",
                          "content": "<p>https://fx.wxbjq.net.cn/preview/6cAH</p>"
                      }, {
                          "id": 17,
                          "title": "你了解老年癡呆是如何發病的嘛?",
                          "type": "patient",
                          "img": "https://greenvalley.oss-cn-shanghai.aliyuncs.com/hospital/953fc541af7b4576b233d2d6b364bddf_700_360.png",
                          "content": "<p>https://fx.wxbjq.net.cn/preview/6cAK</p>"
                      }]
                }
              }
          • 然后我們利用jq對pageList中的列表進行+=操作,完成一次翻倍增長,將結果傳給變量mockData。

          這里用到的是jq對數組的并集(‘+’)運算,兩個數組相加,最終得到一個包含兩個數組所有元素的新數組。

              mockData=$(echo "$mockData" | jq '.data.pageList+=.data.pageList')
              $ echo "$mockData"
              {
                "code": 1,
                "msg": null,
                "data": {
                  "pageNumber": 0,
                  "pageSize": 10,
                  "totalElements": 12,
                  "totalPages": 2,
                  "pageList": [
                    {
                      "id": 18,
                      "title": "老年癡呆癥有哪些危害?",
                      "type": "patient",
                      "img": "https://gv.oss-cn-shanghai.aliyuncs.com/hospital/a295c2081459450ba6679db48d6a2471_700_360.png",
                      "content": "<p>https://fx.wxbjq.net.cn/preview/6cAH</p>"
                    },
                    {
                      "id": 17,
                      "title": "你了解老年癡呆是如何發病的嘛?",
                      "type": "patient",
                      "img": "https://gv.oss-cn-shanghai.aliyuncs.com/hospital/953fc541af7b4576b233d2d6b364bddf_700_360.png",
                      "content": "<p>https://fx.wxbjq.net.cn/preview/6cAK</p>"
                    },
                    {
                      "id": 18,
                      "title": "老年癡呆癥有哪些危害?",
                      "type": "patient",
                      "img": "https://gv.oss-cn-shanghai.aliyuncs.com/hospital/a295c2081459450ba6679db48d6a2471_700_360.png",
                      "content": "<p>https://fx.wxbjq.net.cn/preview/6cAH</p>"
                    },
                    {
                      "id": 17,
                      "title": "你了解老年癡呆是如何發病的嘛?",
                      "type": "patient",
                      "img": "https://gv.oss-cn-shanghai.aliyuncs.com/hospital/953fc541af7b4576b233d2d6b364bddf_700_360.png",
                      "content": "<p>https://fx.wxbjq.net.cn/preview/6cAK</p>"
                    }
                  ]
                }
              }

          按照上述的方法,每次列表的元素個數都會翻倍,也就是操作n次就變成2的n次方倍,指數增長的速度就不用多說了~

          這樣根據自己的需要得到數據后將新數據存入json文件,最重要的數據準備過程也就完成了:

              $ echo "$mockData" > /tmp/MockTest.json

          3.3 Charles 的 Mock 實現

          說了這么多“廢話”,總算是到了主角了,其實數據準備好了,工具的使用還是很簡單的,Charles有一個叫做Map Local的功能,在你要mock的請求上右擊就可找到:

          Map Local可以對指定的接口返回使用本地文件進行替換,如這里替換為上文中廢話半天生成的數據文件MockTest.json:

          然后再次刷新頁面,看看效果,頁面的列表就如愿倍增了,也不用去數據庫添加數據,保存一份json文件即測即用即可:

          以上,期待大家一起交流,多多指正。

          文轉自霍格沃茲測試開發學社學員學習筆記
          原文鏈接:https://ceshiren.com/t/topic/29276

          一、web簡介

          1.1、什么是web

          • WEB:world wide weibsite,全球廣域網,也稱萬維網
          • 技術視角:布局設計、代碼編寫、數據庫建立、網絡平臺選擇
          • 用戶視角:使用瀏覽器上網瀏覽的網頁

          1.2、統架構

          • B/S:Browser/Server
          • C/S:Client/Server

          二、web架構

          • 頁面層:User Interface Layer
          • 業務邏輯層:Business Logic Layer
          • 數據訪問層:Data Access Layer

          2.1、網頁

          • 靜態網頁:和服務端沒有交互
          • 動態網頁:網頁數據可以和服務端進行交互

          2.2、URL

          • URL:Uniform Resource Locator,統一資源定位符
          • 格式:
            • schema :// host [ : port] path [query # fragment ]
            • https://www.baidu.com/s?wd=hogwarts&rsv_spt=1&rsv_iqid=0x85a0d0b9000677ee
          • URI:統一資源標識符,在某一規則下能把一個資源獨一無二的標識出來
          • URL是URI的一種

          2.3、HTTP

          • HTTP:Hyper Text Transfer Protocol,超文本傳輸協議

          2.4、DNS解析

          • DNS:Domain Name System ,域名系統
          • 使用戶更方便的訪問互聯網,而不用記住能夠被機器識別的IP和端口

          三、瀏覽器的工作原理

          • 問題:在瀏覽器網址欄輸入www.baidu.com ,回車,會發生什么?
          • 首先、瀏覽器向服務器發送HTTP請求; 服務器接受請求 、解析請求,處理請求、返回請求給瀏覽器 瀏覽器接受服務器的響應,并解析請求生成web頁面

          四、Web服務器

          • Apache
          • Tomcat
          • Nginx
          • IIS

          推薦

          Python全棧開發與自動化測試開發班

          由淺入深實戰進階,從小白到高手

          以Python全棧開發為基礎,深入教授自動化測試技能,為學員打造全面的技術能力。通過系統學習和實際項目實戰,學員將具備在職場中脫穎而出的競爭力。不僅能夠靈活運用Python進行開發,還能夠保障項目質量通過自動化測試手段。這是一個全面提升職業競爭力的機會。

          課程詳情

          Python開發必備基礎技能與項目實戰

          Pvthon 編程語言/算法和數據結構/面向對象編程Web后端開發/前端開發/測試管理平臺項目實戰

          人工智能ChatGPT實戰

          人工智能輔助學習各種開發和測試技能/Pytorch深度學框架/平臺開發實戰

          數據分析與自動化辦公

          數據采集/Pandas與數據處理技術/ECharts與數據可視化技術/爬蟲實戰/自動化辦公/批量文件處理

          UI自動化測試與高級項目實戰

          Web自動化測試/App自動化測試/ PageObject設計模式

          接口自動化測試

          接口協議分析/Mock實戰/服務端接口測試

          性能測試

          性能測試流程與方法/JMeter 腳本參數化/Grafana監控系統搭建

          簡歷指導與模擬面試

          1V1簡歷指導/模擬真實面試/測試開發崗面試全攻略名企私教服務 名企專家1v1輔導/行業專家技術指導/針對性解決工作難題/績效提升輔導與晉升復盤

          課程亮點

          名企私教服務 先學習后付費 高額獎學金

          專屬社群+晚自習在線答疑

          5V1全方位輔導作業+考試強化學習效果

          簡歷修改 模擬面試 就業內推 面試復盤


          主站蜘蛛池模板: 国99精品无码一区二区三区| 亚洲狠狠久久综合一区77777| 一区二区视频免费观看| 精品一区二区三区东京热| 国产AV天堂无码一区二区三区| 99精品一区二区三区| 精品一区二区在线观看| 果冻传媒董小宛一区二区| 国产一区二区三区在线看片| 亚洲.国产.欧美一区二区三区| 蜜桃视频一区二区三区在线观看 | 亚洲色大成网站www永久一区| 国产乱码精品一区二区三区四川 | 无码一区二区三区| 国产日韩高清一区二区三区 | 欧美日韩精品一区二区在线视频 | 99热门精品一区二区三区无码| 免费无码一区二区三区蜜桃| 三上悠亚一区二区观看| 三上悠亚日韩精品一区在线| 波多野结衣高清一区二区三区 | 国产精品一区二区久久精品涩爱| 一区二区视频在线| 精品国产一区二区三区香蕉| 亚洲高清毛片一区二区| 久久精品日韩一区国产二区 | 无码中文人妻在线一区| 中文字幕一区二区三区在线播放| 日韩电影在线观看第一区| 波多野结衣高清一区二区三区 | 精品人妻一区二区三区浪潮在线| 精品人妻系列无码一区二区三区 | 国产精品视频一区二区猎奇| 亚洲一区二区无码偷拍| 国产午夜毛片一区二区三区| 国产乱码一区二区三区四| 国产福利视频一区二区| 日本v片免费一区二区三区| 亚洲蜜芽在线精品一区| 国模吧一区二区三区| 亚洲日韩精品无码一区二区三区|