主頁 >  其他 > 軟體自動化測驗初學者忠告

軟體自動化測驗初學者忠告

2023-04-25 08:06:02 其他

題外話

測驗入門

很多受過高等教育的大學生經常問要不要去報測驗培訓班來入門測驗,

答案是否,

高等教育的合格畢業生要具備自學能力,如果你不具備自學能力,要好好地反省一下,為什么自己受了高等教育迷戀于各種入門級別的培訓?是沒有毅力還是不知道學習方法?

沒有毅力的話,要自己多看些勵志的書,多想想社會的殘酷,親人的失望等來勉勵自己,畢竟企業多半也不會喜歡懶散的人的,

不知道學習方法的話,讀《軟體評測師教程》(國內軟體評測師教材),《Software Testing Foundations 4th》(強烈推薦 國外測驗認證ISTQB教材),《谷歌測驗之道》是通常比培訓機構更好地入門測驗,

以上書籍及測驗標準等后續將陸續上傳:https://github.com/china-testing/python-testing-examples

image

我身邊碰到比較有水平的軟體測驗,沒有一個是什么石、testing、林、鳥、*內等入門測驗的,而且這些機構經常打著包就業的名義騙人去培訓,培訓的老師通常口才很好,善于包裝,但是關鍵的一點,這些老師多數自己都不是合格的測驗,培訓完之后有些學生重學幾次又無法就業,甚至出現學生和培訓機構對簿公堂的情況(這種情況通常是培訓機構敗訴,如果你身邊有這樣的被騙朋友可以建議他們先交涉不行再找律師保護自己),

物體培訓業尤其成為打著就業的幌子進行行騙的重災區,導致現在主流企業一看到有某些機構經歷的簡歷直接連面試機會都沒有了,

當然不是一棍子打死所有的測驗培訓,比如斯特沃克的培訓,google的gtac等分享是做得相當不錯,建議自己先對測驗有一定的了解,了解測驗培訓授課老師的水平之后再選擇培訓,盡量自學為主,在身邊找有經驗的實際測驗人員稍微帶下,

測驗的方向整體是功能測驗的作業崗位逐漸減小,facebook就沒有測驗人員,google也沒有專職的功能測驗,功能測驗由開發、產品、用戶等分擔會降低溝通等成本,未來的測驗人員更加需要開發技能,

對于太極,推拿之類的,視頻是很好的學習方法,但是對于軟體自動化測驗,最好的學習方法不是聽課,也不是看視頻,而是在有經驗的專業人士指導下進行專案實戰、發現問題、解決問題,實戰實戰再實戰!

本人曾在公司專案中曾手把手教剛畢業的毫無編程基礎的技校生介面、性能、自動化等測驗,結果3個月之后他們都跳槽,薪水從4k漲到10k以上(2015年),

自動化測驗進階

IT主要技術體現大多先用英文描述,要想提升到比較高的水平,必須要有流利的英文閱讀能力,

搜索引擎方面要珍惜生命,遠離競價排名,做個有良知不受騙的人,從不用死不悔改的*度開始,優選google,其他的還有 必應 雅虎 oscobo, 很多QQ群還有免費fanqiang工具,google的搜索通常能直中目標,stackoverlow的回答通常是首選方案,

選擇有水平的業內人士幫助是掌握linux、python和測驗基礎之后一個迅速提升的方法,

自動化測驗的層次

image

從圖看出自動化盡量以單元、介面為主,如果你有志在自動化測驗深入,還在死磕QTP,selenium等的話,建議看下pytest、pexpect、API測驗、單元測驗等,

腳本

1-1 不要在實際專案中使用錄制和回放

大多數自動化工具(特別是商業工具)具有記錄和播放功能,這個功能的表面簡單,實際有陷阱,錄制和回放在廣告視頻和演示文稿中看起來非常棒,但錄制的腳本不使用變數,回圈和條件,自動創建的程式和函式的名稱通常不直觀,通常所有操作都錄在一個函式中(可能很大),執行不穩定,維護成本也高,

  • 錄制和回放適用點
    • 在學習自動化工具
    • 不重用的作業
    • 很難識別和處理的控制元件

1-2 不要使用暫停

暫停,比如python中的:


import time

time.sleep(5)

定義全域變數可以避免大量代碼修改,如下


WAIT_TIME = 5
...
time.sleep(WAIT_TIME)

上述等待不利于快速執行,較快出現的控制元件同樣需要常見等待,等待物件或物件屬性是更好的選擇,比如selenium中的顯式等待:


from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )
finally:
    driver.quit()

又如selenium中的隱式等待:


from selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id("myDynamicElement")

以WebDriverWait一定的時間間隔檢查物件的存在(例如每秒一次),如果象出現,則回傳true,如果物件在timeout引數指定的時間內沒有出現,則回傳false,因此,如果控制元件一秒鐘內出現,那么等待時間將會是 1秒,

當然短時間的等待,有時也是必要的,比如降低CPU使用率,短時間等待狀態改變等,

1-3 在回圈中超時退出

以常量的形式定義超時,例如定義兩種型別的短超時(3秒)和長超時(3分鐘),

1-4 不要將自動化測驗完全等同于開發

雖然自動化需要編程技巧,但它通常不是完整的開發專案,自動化常由初級程式員開發,因為作業簡單得多,并一般為內部需求,在99%的情況下不需要大多數設計模式,在使用資料庫時不會使用事務,測驗資料量一般不會很大,

代碼要力求簡單,快速開發,即使使用了行為驅動開發(BDD:behavior-driven development)或關鍵字驅動的測驗(KDT:keyword-driven testing)等方法也要盡量保證代碼簡單,

1-5 不要寫復雜的代碼

在使用條件和條件時,盡量遵循“不超過三個嵌套級別”的規則,

代碼嵌套超過三層非常難以除錯,寧肯代碼多重復也不要嵌套超過三層,

1-6 驗證邏輯條件的所有選項


if A and B or C:
# if (A and B) or (C and D)

定要檢查這些代碼的每個條件(在這個例子中的A,B,C)和所有可能的True和False,添加括號能增加可讀性,

1-7 使用編程規范

初學者通常不太關注變數和函式的名稱使用任何規則,盡管如此,幾乎所有的語言都有所謂的編碼標準,比如python的PEP8, google的編程規范,

在大專案中這些標準成為強制性規則,方便互相理解代碼,

1-8 使用靜態代碼分析器

對于流行的編程語言,有特殊的代碼分析器,例如Python的pylint,JavaScript語言的jslint等,

特別指出對python這樣的動態型別的語言更加重要,

pylint通常有很多誤報,但是mypy的檢查則比較實用,參考:python代碼分析和lint,

1-9 隨機

比如打開選單有快捷鍵、下拉選單、圖示等多種方式,盡量寫方法隨機呼叫各種方式,以求覆寫各種場景,不過要記得添加日志以便跟蹤錯誤,

1-10 不要使用坐標

非標準控制元件盡量不要使用坐標,可以用影像識別的方法:


Window.Toolbar.Click(135, 15)

替換為:


toolbar_click_button_by_image(Window.Toolbar, "Button Caption")

1-11 學習和使用庫

比如:


full_name = '{0}\\{1}'.format(file_path, file_name)

在linux上就比較尷尬,可以替換為:


full_name = os.path.join(file_path, file_name)

附: python自動化測驗開發庫

1-12 避免復制和粘貼

復制的代碼維護成本很高,盡量提取為公共庫,

公共測驗庫示例

1-13 例外捕捉到具體的類

例外通常是程式考慮不周到才會發生:


try:
    x = input('Enter the first number: ')
    y = input('Enter the second number: ')
    print x/y
except Exception as e:
    pass

上述捕捉所有例外并忽略例外的代碼通常只在臨時代碼中使用,通常也要把例外例外資訊顯示出來,比如


import sys
try:
	x = input('Enter the first number: ')
	y = input('Enter the second number: ')
	print x/y
except Exception as e:
	print e
	for  item in sys.exc_info():
		print item

又如:


import traceback

import cv2
import numpy as np

def raw2jpg(filename, height=480, width=640):
    try:
        img = np.fromfile(filename, dtype=np.uint16)
        img = img.reshape( (height, width) )
        img.astype(np.float)
        img = np.sqrt(img)
        img = img * (255 / img.max())
        #img.astype(np.uint8)
        cv2.imwrite(filename+'.jpg', img)
    except Exception as info:
        print('Error: {}'.format(filename))
        print(info)
        traceback.print_exc()
        return False

    return True 

更佳的方式是捕捉到具體例外:


try:
    x = input('Enter the first number: ')
    y = input('Enter the second number: ')
    print x/y
except ZeroDivisionError as e1:
    print("ZeroDivisionError")
except TypeError as e2:
    print("TypeError")

另外一種例外處理方式:


far = 0 if not no_number else far_number/float(no_number)

1-14 代碼與資料分離

對于小資料集可以使用陣列或串列,大資料可以使用資料驅動測驗(DDT:data-driven testing),資料源可能為資料庫,Excel或CSV檔案等,

注意點:

  • 以讀模式打開資料檔案,
  • 每列只存盤一種型別的資料,在資料庫的情況下,
  • 用完關閉與資料源
  • 資料檔案中不要用空行

1-15 除錯

簡單的可以多使用print或者logging列印一些資訊,更高級的內容有

?斷點 ?單步執行 ?查看本地和全域變數的值 ?觀察變數和運算式

1-16 不要為未來撰寫代碼

專案的變化是很頻繁,可以做一些自動化測驗的技術預研,但一般不要書寫有些只供未來使用的代碼,

1-17 讓代碼更好

在不影響性能的情況下提高可讀性,

1-18 測驗選擇適當的語言

語言上手的難易程式和流行度及庫支持,一般而言python因為其容易上手、是膠水語言(與其他語言呼叫方便)、語法簡潔、維護成本低、方便除錯,是目前自動化測驗占有率最高的首選語言,但是c#在windows平臺、java、c++等也有一定的市場,雖然python的占有率最高,但是一定要考慮到有些自動化測驗開發可能已經有c++,go,java之類的現成的工具,

盡量不要使用新的編程語言, 咨詢開發,可以和開發采用同一種語言,尤其是單元測驗,一般為采用和開發一樣的語言,

值得注意的是TCL(Tool Command Language)早起因為expect的命令自動化擁有一定的名聲,且testcenter、smartbits等儀表一度不支持python等主流語言,但是TCL的語法晦澀,功能弱小,是能不用就不要去用的語言,

參考資料: 編程流行度 tiobe

1-19 使用變數前要初始化

這個在python中可以用mypy檢查,

測驗最佳實踐

2-1 不要實作被測應用的功能

因為:

?計算和邏輯可能很復雜,且開發已經實作了 ?計算和邏輯可能會更改 ?使用浮點數的精度可能和語言有關,

白盒和灰盒測驗中一般是知道輸入和預期結果就好,不要知道具體內部實作程序,

例外:大資料、搜索引擎中間演算法等不明確預期結果的測驗,經常用python快速實作一遍,與開發用c++等語言實作得結果進行比對,

2-2 測驗的獨立性

2-3 哪些不應該自動化

主要是基于成本考慮

?難以維護的自動化, ?盡量多做單元測驗和介面測驗的自動化,少做UI層的自動化 ?重復使用次數不多的自動化

有些手工不能做的必要測驗,即便自動化的成本很高,也是需要自動化,

2-4 向開發人員尋求幫助

開發在具體的開發方面可以值得學習,但是在自動化測驗很方案方面自己定奪比較好,比如結果驗證,開發大多喜歡直接從資料庫中讀資料,但是實際上展示資料庫資料的應用也是可能出問題的,

2-5 云測驗

云測驗

?要測驗桌面應用程式,必須打開會話,作業系統是否支持 ?硬體相關的測驗云測驗支持并不方便, ?移動設備的云服務通常比較貴 ?Web應用程式的自動化比較適合在云中執行, ?手機兼容性的測驗可以考慮云,功能自動化測驗則不用云比較好,

2-6 充分利用邊界值和等價類

2-7 錯誤與警告

注意區分自動化測驗平臺或工具的錯誤和被測應用的bug,

2-8 使用合適的技術

在測驗自動化中使用了許多特定的方法:ODT,DDT,KDT,BDD,頁面物件,基于模型的測驗等等,比如那么對KDT一般需要一部分寫測驗平臺,一部分寫測驗庫,一部分寫測驗用例,

2-9 特殊錯誤的驗證

可以書寫一個臨時的測驗來處理某些特定的bug,

2-10 在寫真實測驗之前做POC

環境

軟體測驗自動化中有兩種主要的環境型別,一個創建和除錯測驗,另一個用于運行測驗,

3-1 為您的需要選擇一套適當的工具

以介面自動化測驗為例,一些團隊,執著的認為java是最好的語言,要用java去發HTTP請求,更有甚者,用jmeter去做介面自動化測驗,不排除個別場景,這可能是合適的方式,但是通常的HTTP介面測驗,用requests,代碼行數通常比java少一個數量級,還不用編譯,

python是主流語言中的膠水語言,和其他語言配合都比較完美,通常情況下是自動化測驗的首選語言,但是python未必適用所有地方,還需要其他工具和語言進行補充,不過不要太多,學習很多語言也是一件痛苦的事情,

現在還有很多培訓機構在鼓吹UI自動化就是自動化測驗的全部,一說自動化就是QTP,一問Selenium,Testcomplete之類的都不知為何物,更不用說什么junit,pytest之類的了,

3-2 慎用自動提交bug

配置錯誤,測驗代碼錯誤經常導致測驗失敗,

測驗代碼有時難以描述清楚測驗步驟

注意不要提交重復的bug,

在沒有十足的把握的情況下可以用半自動的方式,發送郵件給測驗人員,然后又測驗人員提交bug,

3-3 不要使用欺騙的結果

避免注釋測驗代碼的問題部分或改變預期的結果,以便測驗不會出現失敗,

如果實在用禁用,要知道禁用用例的比例,后面定期檢查修改,

3-4 熟練使用工具

比如wingide中Ctrl + \為注釋代碼的快捷鍵

3-5 使用版本控制系統

避免檔案丟失,方便協作,盡快使用hg、git之類的,

3-6 避免自定義表單

本來自動化就是為了把頁面的東西盡可能走后臺,你為了取悅領導(附:大陸目前多數測驗領導是不太合格的)還是什么原因,搞成形式主義了,當然資料報表是另外一回事,

引數可以用組態檔等方式,

3-7 自動化所有能自動化的東東

比如:測驗,代碼,測驗環境,虛擬機,SQL查詢,測驗資料,報告等等

運行,日志記錄,驗證

4-1 盡可能經常運行腳本

4-2 測驗失敗時重新執行

當出現錯誤時應用程式運行很長一段時間,或特定情況下要盡量定位問題,

一般而言失敗的測驗先記錄下來,所有測驗執行完之后在重新執行一次,

4-3 豐富的日志內容

錯誤日志盡量包含:預期值,實際值,地點和操作,

引數盡量用引號等括起來,以免把包含空格的引數當成多個引數,

4-4 截圖

UI測驗必要的時候可以截圖,同時處理好滾動,

4-5 盡量避免比較影像

審查

審查是保持碼清晰易懂的好方法,要做代碼的互相評審,

5-1 讓非自動化者也可以看懂代碼


def test_login(url, user, password, text):
    open_page(url)
    login_as(login=user, password=password)
    verify_page_opened(text)

5-2 避免不必要的優化

在開始執行任何優化之前如需要慎重考慮,

通常不需要的優化作業看起來像這樣:

1.應用程式啟動3秒鐘,然后進行5秒鐘的測驗腳本填充搜索欄位,還有5秒鐘搜索程序,之后腳本用1秒鐘讀取找到的資料并進行驗證, 2.測驗人員開始優化讀取和驗證 3.測驗人員花費一天時間進行優化并達到目標:閱讀和閱讀每次運行時間為半秒

事實上,測驗工程師的代碼生產力已經翻了一番,但是結果是他整體方案取得了約5%的收益,花一天時間是不值得的,一般需要綜合考慮,涉及腳本、被測應用、環境、執行頻率等,

建議你在兩種情況下優化測驗:

?如果測驗運行時間過長,并且測驗的應用程式是在測驗執行期間空閑, ?如果您在代碼中看到明顯的問題,請更正其中的問題,

pandas大資料分析性能優化實體-read_csv引擎和分組等,這里是一個必要的優化實體,

5-3 定期審查別人的代碼

定期審查別人的新代碼,可以結對編程,甚至是同時一個人寫,一個人看,

5-4 參與論壇和討論

如果您是自動化領域的初學者,并且在自動化團隊中作業,那么會從你的同事那里學到很多東西,如果你是唯一的自動化工程師在公司或你的部門沒有人能幫助你?

stackoverflow等社區常常可以找到自己問題滿意的答案,同時試圖幫助別人也可以擴展自己的眼見,

5-5 執行重構

重構是對現有代碼的簡化,功能和應用程式不會改變,盡管測驗自動化中的代碼通常很多實際應用更簡單,有時候你仍然需要重構,

?您可能會發現您所支持的代碼太復雜, ?可能有撰寫新測驗的請求,需要修改代碼 ?可能需要重構來改進已撰寫的代碼

重構后可以執行所有測驗來驗證,也可以在公共庫等地方添加必要的單元測驗,

5-6 洗掉低收益的測驗

?測驗執行了多少次; ?測驗發現了多少實際問題; ?測驗需要多久進行一次維護,

參考資料

  • 本文涉及的python測驗開發庫 請在github上點贊,謝謝!

  • python精品書籍下載 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md

  • 本文英文原版:

    Software Testing Automation Tips 50 Things Automation Engineers Should Know.pdf https://url97.ctfile.com/f/18113597-843298101-6b3224
    訪問密碼在公眾號 輸入 密碼 即可獲取,

image

釘釘或微信號: pythontesting 微信公眾號:pythontesting

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

標籤:其他

上一篇:CVE-2015-5254漏洞復現

下一篇:返回列表

標籤雲
其他(158000) Python(38099) JavaScript(25390) Java(17999) C(15217) 區塊鏈(8259) C#(7972) AI(7469) 爪哇(7425) MySQL(7140) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5328) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4559) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2430) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1960) Web開發(1951) HtmlCss(1923) python-3.x(1918) 弹簧靴(1913) C++(1911) xml(1889) PostgreSQL(1873) .NETCore(1855) 谷歌表格(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
最新发布
  • 軟體自動化測驗初學者忠告

    題外話 測驗入門 很多受過高等教育的大學生經常問要不要去報測驗培訓班來入門測驗。 答案是否。 高等教育的合格畢業生要具備自學能力,如果你不具備自學能力,要好好地反省一下,為什么自己受了高等教育迷戀于各種入門級別的培訓?是沒有毅力還是不知道學習方法? 沒有毅力的話,要自己多看些勵志的書,多想想社會的殘 ......

    uj5u.com 2023-04-25 08:06:02 more
  • CVE-2015-5254漏洞復現

    1.漏洞介紹。 Apache ActiveMQ 是美國阿帕奇(Apache)軟體基金會所研發的一套開源的訊息中間件,它支持 Java 訊息服務,集群,Spring Framework 等。Apache ActiveMQ 5.13.0之前 5.x 版本中存在安全漏洞,該漏洞源于程式沒有限制可在代理中序 ......

    uj5u.com 2023-04-25 08:05:35 more
  • 第138篇:了解HTTP協議(TCP/IP協議,DNS域名決議,瀏覽器快取)

    好家伙,發現自己的網路知識十分匱乏,趕緊補一下 這里先舉個我生活中的例子 欸,作業不會寫了,上網搜一下 用edge瀏覽器上bing必應搜一下(百度廣告太多了,真不想用百度舉例子) 假設這是我們第一次訪問bing的首頁 當我向瀏覽器中輸入https://cn.bing.com/并按下回車 瀏覽器做了什 ......

    uj5u.com 2023-04-25 08:05:22 more
  • 年薪70萬的全堆疊需要什么技能?

    什么是全堆疊開發人員? 全堆疊Web開發人員是一名技術專家,可以在任何應用程式的前端和后端作業。這個人應該熟悉3層模型的每一層。 3層由 表示層(處理用戶界面的主前端部分), 業務邏輯層(任何處理資料驗證的應用程式的后端部分) 資料庫層 全堆疊開發人員不一定掌握所有技術。但是,專業人員應該在客戶端和服務器 ......

    uj5u.com 2023-04-24 10:11:22 more
  • 年薪70萬的全堆疊需要什么技能?

    什么是全堆疊開發人員? 全堆疊Web開發人員是一名技術專家,可以在任何應用程式的前端和后端作業。這個人應該熟悉3層模型的每一層。 3層由 表示層(處理用戶界面的主前端部分), 業務邏輯層(任何處理資料驗證的應用程式的后端部分) 資料庫層 全堆疊開發人員不一定掌握所有技術。但是,專業人員應該在客戶端和服務器 ......

    uj5u.com 2023-04-24 10:04:05 more
  • 面試官最常問的10道測驗用例和5道思維面試題及答案,每1題都很經典

    軟體測驗面試中,測驗用例是非常容被問到的一個點,今天就給大家把最常見的20道測驗用例方面的問題給大家整理出來,希望對大家的面試提供幫助。 ......

    uj5u.com 2023-04-24 08:05:14 more
  • 自學1

    Problem1 明明的亂數 ## 題目描述 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了 N 個 1 到 1000 之間的隨機整數 (N <= 100),對于其中重復的數字,只保留一個,把其余相同的數去掉,不同的數對應著不同的學生的學號。然后再把這些數從小到大 ......

    uj5u.com 2023-04-24 08:05:08 more
  • 給博客園商業化的一份公開信

    前幾天有學生給我分享了園子的商業化努力-困境求助:開設捐助通道,讓我大吃一驚,然后又唏噓了好久: 那是我逝去的青春呀! 我是很少逛園子了,但有學生問起的時候,總是會首先安利博客園的。然而,從沒想過,博客園竟然會艱難到這個地步了。 靠捐助是沒有出路的。愿意捐錢的人就那么點,而且能捐一次兩次,不可能一直 ......

    uj5u.com 2023-04-24 08:04:57 more
  • 性能測驗工具Locust和JMeter比較-及相關書籍下載

    Apache JMeter?和Locust都是是最受歡迎的性能測驗工具。 JMeter和Locust - 簡介 JMeter是久經考驗的性能框架之一,其第一個版本大約在20年前發布。 它是用純Java語言撰寫的。 最初,JMeter開發用于執行Web和FTP應用程式的負載測驗。 但是,現在它允許測驗 ......

    uj5u.com 2023-04-24 08:04:50 more
  • 數學建模論文排版(表格篇)

    本文為學習清風數學建模排版的表格部分的筆記 配套資料可以在微信公眾號《數學建模學習交流》后臺發送“論文排版”免費獲取。 三線表制作 先插入一個表格然后洗掉邊框(在表格工具--布局--查看網格線(打開),即可看見去除邊框后的虛線)再利用表格工具--表設計--邊框刷為表格刷上邊框,第一條線和最后一條線是 ......

    uj5u.com 2023-04-24 08:04:29 more