測試從業人員常用的數據庫技能整理


本篇文章主要列舉一些測試人員常用的SQL技能,作為一名測試從業人員,一般涉及到數據庫的那些方面,希望給一些入門但是沒頭緒的小伙伴一些幫助。

    首先梳理一下本人在工作中遇到的一些數據庫使用場景(我目前從事的是管理系統網站的測試):

  •  本地搭建測試環境,數據庫的導出導入
  •  頁面上報SQL異常分析
  •  數據庫簡單的增刪改查
  •  批量插入數據或者是查詢
  •  樹結構查詢

 

 1、本地搭建測試環境,數據庫的導出導入

  項目開發的初期,或者說測試介入測試的時候,一般是集成測試階段,一般是在開發庫上開發,如果開發人數較多,經常會造出一些臟數據,不利於我們驗證,或者測試,此時我們需要有一個專門用於測試的干凈數據庫,如果公司服務器可以開個賬號最好,如果不可以,也可以在本地導入一個數據庫輔助測試。

  流程一般是:從服務器導出dmp文件 >> 在指定服務器創建用戶、賦權>> 將導出的dmp文件導入到指定數據庫的指定用戶(以ORACLE數據庫11G為例)

  •  導出

   將user1的所有資源導出為/home/oracle目錄下的test.dmp文件,輸入日志為同級目錄下的log.log文件

exp user1/123456 file=/home/oracle/test.dmp log=/home/oracle/log.log owner=user1
  •  創建用戶、賦權

  創建表空間,表空間名字為TEST,存儲文件為TEST.ORA,初始帶下為524兆,空間不夠時每次自增100兆。

create tablespace TEST datafile 'TEST.ORA' size 524m autoextend on next 100m;

   創建用戶名為test,密碼默認為123456,指定表空間為TEST

create user test identified by 123456 default tablespace TEST;

賦權,給test增加連接、訪問資源、管理員權限

grant connect,resource,dba to test;
  •  導入 

將導出的dmp文件導入到指定用戶

imp test/123456 file=E:/test.dmp log=E:/log.log fromuser=user1 touser=test ignore=y

 2、頁面上報SQL異常分析

  上文也說了,項目初期,問題肯定會存在,比如說表缺失或者字段缺失等等問題,web界面上會報比較明顯的問題,此時你需要把日志中的對應sql拎出來執行分析問題,找到缺失的表或者對應的表和字段,在SVN上找到對應的腳本,在測試數據庫執行一下,此時問題就解決了(這種小問題,需要測試人員自己解決,不然都找開發,一方面是效率太低,一直打擾別人工作,因為很常見,另一方面是顯得測試價值更低【手動捂臉】)

PS:一般情況下,開發庫都是齊全的,可以直接找到然后生成對應的腳本,刷一下即可。

 3、數據庫簡單的增刪改查

  數據庫其實還是和測試息息相關的技能,像簡單的查詢定位問題,插入測試數據來減少工作量,以及部分字段類型長度的修改這些簡單技能還是需要掌握的,市面上搜一下測試工程師,SQL基本都是必備技能了,可以不精通,但是必須要會~

 4、批量插入數據或者是查詢

----循環修改記錄
declare
  P_id varchar2(100);
  P_Name varchar2(100);
  conNum number;
begin      
     --循環記錄中的 P_id、P_Name(查詢結果集循環)--
     for item in (select A.P_id,A.P_Name from VIEW_1 A) loop
         -- 將查詢到的數據賦值給變量 --
         P_id := item.P_id;
         P_Name := item.P_Name;      
         -- 獲取 P_Name 是否存在(查詢結果集賦值)---
         select COUNT(*) into conNum from VIEW_2 where NAME=P_Name;
         --判斷是否存在,存在則將結算單位ID賦給貨主的TmsCode --
         if conNum = 1 then
              dbms_output.put_line('存在');
                --執行修改--
              update VIEW_2 set VIEW_2.VIEW_2 = P_Name where NAME = P_Name;
         else
              dbms_output.put_line('不存在');
              --執行新增--
         end if;
                
      end loop;    
end; 

  5、樹結構查詢

connect by 是結構化查詢中用到的,其基本語法是:
select * from tablename
start with 條件1
connect by 條件2
where 條件3;
例:
select * from table
start with org_id = 'AAA'
connect by prior org_id = parent_id;

  其中 :

CONNECT BY :代表的是父子連接關系, PRIOR運算符必須放置在連接關系的兩列中某一個的前面。對於節點間的父子關系,PRIOR運算符在一側表示父節點,在另一側表示子節點,從而確定查找樹結構是的順序是自頂向下還是自底向上。
START WITH:不但可以指定一個根節點,還可以指定多個根節點。

新手上路,有問題歡迎指正【手動謝謝】~ 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM