數據報表測試、安全測試--案例模板

數據報表測試(之後管報表查詢爲例),安全測試(之後管登陸爲例)前端

 

一、安全測試案例設計 數據庫

歸納了8個方面,這些都是要重點考慮的:
1. 正確的用戶名和密碼,包括是合法的字符和合法長度
2. 錯誤的用戶名,包括用戶名含有非法字符、長度過長、長度太短
3. 正確的用戶名和錯誤的密碼,包括非法字符、長度過長或太短
4. 用戶名和密碼都爲空
5. 正確的用戶名,密碼爲空
6. 任意的用戶名和密碼,包括正確的或錯誤的,也能夠爲空
7. 檢查UI友好性
檢查登陸界面設計是否合理,符合UI規範標準
界面符合習慣、美觀,按鈕對齊,輸入框對齊,無錯別字,字體大小協調,文字描述準確
8. 檢查安全性(SQL注入等)後端

 

 

另外一個詳細案例以下:api

功能性用例設計點:瀏覽器

1.  輸入已註冊的用戶名和正確的密碼,驗證是否成功登陸安全

2.  輸入已註冊的用戶名和不正確的密碼,驗證是否成功失敗,且提示信息正確服務器

3.  輸入未註冊的用戶名和任意密碼,驗證是否登陸失敗,且提示信息正確網絡

4.  使用未激活帳戶登陸,驗證是否登陸失敗session

5.  使用被停用用戶登陸,驗證是否登陸失敗併發

6.  用戶名和密碼二者都爲空,驗證是否登陸失敗,且提示信息正確

7.  用戶名和密碼二者之一爲空,驗證是否登陸失敗,而且提示信息正確

8.  若是登陸功能啓用了驗證碼功能,在用戶名和密碼正確的狀況下,輸入正確的驗證碼,驗證是否登陸成功

9.  若是登陸功能啓用了驗證碼功能,在用戶名和密碼正確的狀況下,輸入錯誤的驗證碼,驗證是否登陸失敗,且提示信息正確

10.用戶名和密碼是否大小寫敏感

11.頁面上的密碼框是否加密顯示、或者是否須要有明暗碼切換按鈕

12.後臺系統建立的用戶第一次登陸成功時,是否提示修改密碼

13.忘記用戶名和忘記密碼的功能是否可用

14.前端頁面是否根據設計需求限制用戶名和密碼長度

15.若是登陸功能須要驗證碼,點擊驗證碼圖片或者點擊換一張是否能夠更換驗證碼,更換後的驗證碼是否可用

16.刷新頁面是否會刷新驗證碼

17.若是驗證碼有時效性,須要分別時效性內和時效性外驗證碼的有效性

18.用戶登陸成功可是會話超時後,繼續操做是否會重定向到用戶登陸界面

19.不一樣級別的用戶,好比管理員和普通用戶,登陸系統後權限是否正確

20.頁面默認焦點是否認位在用戶輸入框中

21.快捷鍵Tab和Enter等,是否能夠正常使用

22.爲空和輸入空格字符串的校驗是否一致

23.使用中文鍵盤輸入字母和使用英文鍵盤輸入字母傳入後端的字符長度是否一致

24.成功登陸後的session的時效設置

25.輸入欄是否設置快速刪除按鈕

26.用戶名和密碼是否支持特殊字符和中文

27.瀏覽器的前進後退按鈕,是否有效

28.成功登出後,點擊瀏覽器回退按鈕,是否能夠繼續操做系統

29.需求中是否有登陸時間限制,若是有驗證時間限制是否有效

30.驗證不一樣登陸方式的正確性:掃碼、帳號密碼、第三方……

31.若支持手機號+驗證碼登陸,驗證碼是否有時間限制,移動設備是否能夠直接獲取驗證碼

32.操做錯誤提示信息是否簡單明瞭

 

兼容性測試用例設計點:

1.  不一樣瀏覽器下,驗證登陸頁面的顯示以及功能正確性

2.  相同瀏覽器的不一樣版本下驗證登陸頁面的顯示以及功能正確性

3.  不一樣移動設備終端的不一樣瀏覽器下,驗證登陸頁面顯示以及功能的正確性

4.  不一樣分辨率的界面下,驗證登陸頁面的顯示以及功能正確性

 

安全性測試用例設計點:

1.  用戶密碼後臺存儲是否加密

2.  用戶密碼在網絡傳輸過程當中是否加密

3.  密碼是否具備有效期,密碼有效期到期後,是否提示須要修改密碼

4.  不登陸的狀況下,在瀏覽器中直接輸入登陸後的URL地址,驗證是否會從新定向到用戶登陸界面

5.  密碼輸入框是否不支持複製粘貼

6.  密碼輸入框內輸入的密碼是否均可以在頁面源碼模式下被查看

7.  用戶名和密碼輸入框分別輸入典型的「SQL注入攻擊」字符串,驗證系統的返回頁面

8.  用戶名和密碼輸入框分別輸入典型的「XSS跨站腳本攻擊」字符串,驗證系統行爲是否被篡改

9.  連續屢次登陸失敗的狀況下,系統是否會阻止後續的嘗試以應對暴力破1解

10.同一用戶在同一終端的多種瀏覽器上登陸,驗證登陸功能的互斥性是否符合設計預期

11.同一用戶前後在多臺終端的瀏覽器上登陸,驗證登陸是否具備互斥性

12.是否能夠記住密碼,記住的密碼保存是否加密,記住的密碼是否有有效期,過了有效期後是否清空密碼

13.是否支持第三方登陸

14.密碼的強弱性,複雜度校驗

15.異地登陸校驗、更換設備登陸校驗、登錄信息異常是否考慮帳戶凍結停用、是否容許第三方平臺存儲密碼

16.是否可使用登陸的api發送登陸請求,並繞開驗證碼校驗

17.是否能夠用抓包工具抓到的請求包直接登陸

18.截取到的token等信息,是否能夠在其餘終端上直接使用,繞開登陸,token過時時間校驗

19.登陸錯誤後的提示是否存在安全隱患

 

性能壓力測試的用例設計點:

1.  單用戶登陸的響應時間是否小於3秒

2.  單用戶登陸時,後臺請求數量是否過多

3.  高併發場景下用戶登陸的響應時間是否小於5秒

4.  高併發場景下服務端的監控指標是否符合預期

5.  高集合點併發場景下,是否存在資源死鎖和不合理資源等待

6.  長時間大量用戶連續登陸和登出,服務器是否存在內存泄露

7.  輸入內容校驗是否加入了函數防抖

 

        最後要說明的一點是,要根據不一樣的系統的實際狀況進行分析,最後根據本身的需求借鑑設計點,並不是全部系統都能涉及到全部的設計點,這裏的設計點只是一個針對大多數登陸可能會涉及到的用例設計點,僅供參考借鑑
--------------------- 
做者:Dawson_cai 
來源:CSDN 
原文:https://blog.csdn.net/sinat_41392571/article/details/80885242 
版權聲明:本文爲博主原創文章,轉載請附上博文連接!

 

 

二、數據報表測試,SQL以下:

 


在下拉框中選擇小時,並在開始和結束時間選擇框中選擇好時間,點擊查詢,查看PA18數據庫,
SELECT --channel_id,substr(to_char(begin_time,'yyyy-mm-dd hh24:mi:ss'),0,13),
COUNT(CASE WHEN opt_type='5' THEN 1 END) 進線量,
COUNT(CASE WHEN opt_type='2' THEN 1 END) 接通量,
COUNT(CASE WHEN opt_type='5' AND video_status='0' AND begin_time IS NOT NULL AND end_time IS NOT NULL AND ceil(to_number(end_time-begin_time)*24*60*60) <=5 THEN 1 END) 五秒呼損量
FROM t_seat_video_opt_record--ydkh h5DV ths
WHERE begin_time between to_date('2019-01-24 10:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-01-24 11:00:00','yyyy-mm-dd hh24:mi:ss') AND channel_id='ydkh';          --科技視頻報表查詢

 

 

select length(to_date('2019-01-24 11:00:00','yyyy-mm-dd hh24:mi:ss')) from dual
--1.ceil函數的返回值是等於其參數n的一個整數或者說是大於參數n的最小整數
--2.該函數以任何數字數據類型或任何能夠隱式轉換爲數字數據類型的非數字數據類型做爲參數。函數返回與參數的數字數據類型相同的數據類型。
--3.具體的使用方法例子以下:

select ceil(-15.8) from dual---  等於-15

select ceil(15.8) from dual---等於16

select length(info.createdate) a from t_Accepted_Cert_Info  info 

select length(to_char('2019-01-24 10:00:00')) from t_Accepted_Cert_Info  info --19位

select substr(to_char('2019-01-24 10:00:00'),0,13) from t_Accepted_Cert_Info  info--與下面一條語句同樣


select substr(to_char('2019-01-24 10:00:00'),1,13) from t_Accepted_Cert_Info  info


select length(substr(to_char('2019-01-24 10:00:00'),0,13)) from t_Accepted_Cert_Info  info 

--to_number(end_time-begin_time)

select to_number(to_date('2019-01-24 11:00:00','yyyy-mm-dd hh24:mi:ss')-to_date('2019-01-24 10:00:00','yyyy-mm-dd hh24:mi:ss')) from dual

--to_date()函數返回的是天數,如下SQL能夠執行測試出結果:

 

select to_date('2019-02-24 11:00:00','yyyy-mm-dd hh24:mi:ss')-to_date('2019-01-24 10:00:00','yyyy-mm-dd hh24:mi:ss') from dual

select to_date('2019-01-24 11:00:00','yyyy-mm-dd hh24:mi:ss')-to_date('2019-01-24 10:00:00','yyyy-mm-dd hh24:mi:ss') from dual


select to_number('12345.678') from dual;


SELECT --channel_id,substr(to_char(begin_time,'yyyy-mm-dd hh24:mi:ss'),0,13),
COUNT(CASE WHEN opt_type='5' THEN 1 END) 進線量,
COUNT(CASE WHEN opt_type='2' THEN 1 END) 接通量,
COUNT(CASE WHEN opt_type='5' AND video_status='0' AND begin_time IS NOT NULL AND end_time IS NOT NULL AND ceil(to_number(end_time-begin_time)*24*60*60) <=5 THEN 1 END) 五秒呼損量
FROM t_seat_video_opt_record--ydkh h5DV ths
WHERE begin_time between to_date('2019-01-24 10:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-01-24 11:00:00','yyyy-mm-dd hh24:mi:ss') AND channel_id='ths';---同花順--anychat報表類型可選小時


SELECT --channel_id,substr(to_char(begin_time,'yyyy-mm-dd hh24:mi:ss'),0,13),
COUNT(CASE WHEN opt_type='5' THEN 1 END) 進線量,
COUNT(CASE WHEN opt_type='2' THEN 1 END) 接通量,
COUNT(CASE WHEN opt_type='5' AND video_status='0' AND begin_time IS NOT NULL AND end_time IS NOT NULL AND ceil(to_number(end_time-begin_time)*24*60*60) <=5 THEN 1 END) 五秒呼損量
FROM t_seat_video_opt_record--ydkh h5DV ths
WHERE begin_time between to_date('2019-01-24 10:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2019-01-24 11:00:00','yyyy-mm-dd hh24:mi:ss') AND channel_id='h5DV';---h5視頻報表類型可選小時

 

 

select * from t_Accepted_Cert_Info  info  WHERE length(createdate)>=19 AND   TO_DATE(info.createdate,'yyyy-mm-dd hh24:mi:ss') BETWEEN add_months(sysdate,-3) AND SYSDATE ORDER BY createdate----查近三個月的數據

因爲createdate非必填,存在空或長度不夠的狀況,故增長length(createdate)>=19判斷

 

--如下SQL是查近2天的數據(先後7天,先後30天均可以這樣寫,語法同樣)


select * from t_Accepted_Cert_Info  info where length(info.createdate)>=19 and info.createdate>=to_char(sysdate-2,'yyyy-mm-dd')----createdate在表中已是varchar型 

select * from t_Accepted_Cert_Info  info where length(info.createdate)>=19 and to_char(info.createdate) between to_char(sysdate-2,'yyyy-mm-dd') and to_char(sysdate)

相關文章
相關標籤/搜索