一、開始日期,結(jié)束日期測(cè)試用例編寫
1. 調(diào)整服務(wù)器時(shí)間
我們知道測(cè)試時(shí)間最麻煩的地方就是時(shí)間是流動(dòng)的,如果我們能隨意控制時(shí)間就好了。我們往往在測(cè)試時(shí),用到比較多的就是調(diào)整服務(wù)器的時(shí)間來控制自己的測(cè)試用例。
Linux上需要用到相關(guān)命令
修改服務(wù)器時(shí)間 date -s “YYYY-mm-dd hh:mm:ss”這樣的格式。
查看服務(wù)器時(shí)間 date:
date命令是需要root用戶來操作的,如果沒有權(quán)限,就用su升級(jí)到root權(quán)限
另外還有通過接口,傳遞2個(gè)時(shí)間戳,或者普通時(shí)間參數(shù)來改變時(shí)間。
場(chǎng)景一:當(dāng)天8點(diǎn)之后,服務(wù)狀態(tài)由關(guān)閉變?yōu)閱?dòng)
那我們可以要調(diào)整到7:59:50左右,來觀察服務(wù)狀態(tài)的變化。
場(chǎng)景二、每天的8點(diǎn),服務(wù)狀態(tài)由關(guān)閉變?yōu)閱?dòng)
調(diào)整名列前茅天的時(shí)間為7:59:50,來觀察服務(wù)狀態(tài)的變化;
將時(shí)間調(diào)整到服務(wù)結(jié)束時(shí)間,使得服務(wù)為關(guān)閉狀態(tài);
調(diào)整到當(dāng)天的23:59:59秒,使服務(wù)跨天;
調(diào)整到第二天的7:59:50秒,再觀察服務(wù)狀態(tài)的變化。
2. 邊界值-時(shí)間點(diǎn)
關(guān)于時(shí)間經(jīng)常主要注意的就是整點(diǎn),
另外23:59:59這個(gè)時(shí)間特別重要,
還有00:00:01這個(gè)時(shí)間也特別重要,
測(cè)試前需要思考一下這些時(shí)間點(diǎn)是否符合自己的測(cè)試場(chǎng)景。
3. 時(shí)間位數(shù)
前幾天測(cè)試中遇到的一個(gè)BUG
舉例:某服務(wù)中的A按鈕的開啟和結(jié)束時(shí)間為800 至1600,在這個(gè)時(shí)間范圍內(nèi),才能打開A按鈕
配置文件如下:
startTime = 800
EndTime = 1600
800 3位表示8點(diǎn)
1600 4位表示16點(diǎn)
當(dāng)我設(shè)置800~1600時(shí),按鈕可以打開,在測(cè)試時(shí),我調(diào)整到了800至2300,缺始終無法打開,經(jīng)歷了一天的折磨后,最終發(fā)現(xiàn)了問題原因如下:
首先這個(gè)時(shí)間800,通過java代碼獲取的時(shí)候,后端處理是將時(shí)間轉(zhuǎn)化為毫秒級(jí)。
轉(zhuǎn)化時(shí)通過80036001000,如果從00:00:00開始算,那么名列前茅個(gè)毫秒數(shù)應(yīng)該是1
這里的名列前茅個(gè)錯(cuò)誤是,首先不能使用800,如果你過了8個(gè)小時(shí),那應(yīng)該是8,而不是800
第二個(gè)錯(cuò)誤比較隱蔽。當(dāng)java代碼獲取時(shí)間時(shí),用了整型,java中整型的最大長(zhǎng)度為2147483647,10位數(shù),而時(shí)間如果設(shè)置到1600點(diǎn), 160036001000 = 5760000000,10位數(shù),超過了Int的最大長(zhǎng)度
導(dǎo)致日志中看到的時(shí)間整型溢出,導(dǎo)致時(shí)間為負(fù)數(shù)。
經(jīng)過調(diào)試,為負(fù)數(shù)時(shí),在19:00之前均未出現(xiàn)錯(cuò)誤,當(dāng)時(shí)間調(diào)整到23:00時(shí),時(shí)間比大小時(shí)出現(xiàn)了問題。
4. 關(guān)于時(shí)間戳及轉(zhuǎn)換
關(guān)于時(shí)間戳的獲取及轉(zhuǎn)換–時(shí)間戳轉(zhuǎn)換工具
轉(zhuǎn)換時(shí)的注意點(diǎn),時(shí)間戳的轉(zhuǎn)換,是秒級(jí)還是毫秒級(jí)
Java獲取當(dāng)前時(shí)間戳方法
System.currentTimeMillis();
Python獲取當(dāng)前時(shí)間戳方法
time.time()
擴(kuò)展閱讀:如果實(shí)際測(cè)試中有需要,可以通過時(shí)間戳的轉(zhuǎn)換,進(jìn)行參數(shù)傳遞來達(dá)到改變時(shí)間的測(cè)試。