<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    不得不說--自動化測試元素定位

     關于自動化測試,經常被問到元素的定位。 很多時間我也幫不了你解決實際的問題,只能從個人腳本談談如何看待這些問題。
      不得不說之元素定位
      雖然,本章寫了十幾篇文章來講元素的定位與操作,對于碰到的一些常見功能,如何通過技巧來定位它們,但是在實際的自動化腳本開發中,不管是新手還是具有一定經驗的老手,我們面臨最多的問題仍然是元素的定位問題。
      有時間元素定位非常簡單,例如,我們只要知道這個元素有的id和name 就可以輕松的來定位到它;有時間元素的定位卻非常的令人非常頭疼,盡管我們用盡了所以辦法,仍然無法定位到它。在這里筆者也沒萬能的方法來幫你解決這些實際問題。
      評估自動化可行性
      對于不同的web項目,所用到的前端技術也不同,有些項目會用到EXT(一個強在的js類庫),有些會用到AJAX(一種創建交互式網頁應用的網頁開發技術),這些技術的應用無疑對于前端開發人員可以快速的生成所需要的頁面,但對于UI自動化測試人員來說,增加了定位頁面元素的難度。
      所以,在進行項目實現UI自動化評估的時候,頁面元素的定位難度也是一個評估標準,如果處處都是很難定位的元素,那么無疑會增加腳本的開發與維護的成本,得不償失。這個時候我可以考慮將更新多的精力放在單元或接口層的自動化上。
      提高技術能力
      對于自動化測試人員來說,如果熟悉前端技術也會大在降低你定位難度,熟練使用XPath和CSS技術會使你的定位變得容易很多,如果精通javascript、jquery 等技術,那么使你的定位之路變得更加隨心所欲。
      規范前端開發
      在我們嘗試實施的web項目中,大多數在設計初期,前端并沒考慮到需要UI層的自動化,所以,有些前端開發人員以實現功能為目的,前端頁面的代碼相當不規范。這個也是自動化測試定位難的重要原因。如果開發人員在設計代碼的時候規范的為元素加上id 和name屬性的話,那我們的定們將會變得容易很多。
      很多測試人員在對項目進行學習和實施自動化測試的過程總是覺得困難重重,就是因為這些普遍的客觀原因所造成的。一方面,我們要努力學好技術,克服這些困難。另一方面,我們要清楚的認識到,自動化技術的應用與實踐不是一個人的戰斗。一定要得到整個團隊的配合與支持。
      當然,站在公司的立場,不能帶來收益的事情是很難得到支持的,這個就需要讀者去綜合評估目前的產品真的適合引入自動化么?或者目前的階段真的迫切需要自動化么?

    posted @ 2014-09-02 09:44 順其自然EVO 閱讀(187) | 評論 (0)編輯 收藏

    數據報表類系統測試

      前段時間測試了一個數據報表類系統-VOC系統
      VOC:Voice Of Customer, 根據每天的電話求助量,機器人咨詢量、人工咨詢量、云客服咨詢量等數據出發,關聯到具體問題、產品、部門等信息上分析并展現出會員最大痛點。
      VOC 的數據報表的最終展現分為兩個過程
      1、獲取源數據并整合數據為最終表
      2、數據關聯到問題、產品、部門后進行分析展現
      針對這兩個過程,測試方法也分別兩個步驟
      一、  獲取源數據并整合數據為最終表-ETL過程
      實現方式:云梯、hive腳本、datax
      開發跟進業務需求了解原始表結構,編寫hive腳本,“在云端”平臺上運行,獲取最終表,使用dataX工具將數據導入到線上數據庫
      平臺:在云端(內部系統)
      Datax:離線同步工具
      對應的測試方法
      1、最終表的正確性
      常見的測試方式:測試中間表的正確性、抽樣或全量數據比對、hive腳本review
      因為voc對應的最終表的獲取邏輯相對簡單,所以選擇的測試方式是hive腳本review,前提條件是要先了解各個源數據表的含義及結構,對原始數據表非常了解就很容易發現問題,尤其是一些特殊值的處理
      舉個例子
    create table if not exists r_yunong_rest ( #新建一個中間表
    report_date         string,
    prd_code            string,
    question_code       string,
    date_type           string,
    value_type          string,
    base_value          string,
    gmt_create          string,
    gmt_modified        string
    ) partitioned by (pt string)
    row format delimited fields terminated by '\"'
    lines terminated by '\n'
    STORED AS TEXTFILE;
    insert overwrite table r_yunong_test #表數據插入
    PARTITION (pt='$env.lastPartition')
    select  report_date,
    prd_code,
    question_code,
    'D' as date_type,
    '01'as value_type
    count(case when sid is not null then sid when caseid is not null then caseid else null end) as  base_value,  #特殊字段的處理,驗證重點
    '$env.date' as gmt_create,
    '$env.date' as gmt_modified
    from r_test   #從另一個已創建的中間表r_voc_fact_question獲取數據
    where pt='$env.lastPartition'
    and question_code <>'unknown'
    group by  report_date,prd_code,question_code;
      這個過程中需要關注的問題
      1、     數據不完整
      2、     數據不準確
      3、     某些數據需要特殊處理,比如為null、為0的情況
      4、     發現原始表數據質量不理想,需要進行處理
      二、數據關聯到問題、產品、部門等進行分析展現—邏輯代碼
      平臺實現了將傳入的參數組裝成一條復雜的sql語句,將源數據關聯到產品數據、問題點數、時間數據后的數據結果輸出。
      所以驗證的是報表數據的正確性,簡單來說就是驗證一條復雜sql寫的對不對,采用的測試方式是根據業務理解測試整理出對應sql,輸出數據,和系統輸出的數據進行對比
      測試要點
      1、表結構設計決定業務拓展性 例 測試過程中發現有些元數據表必須是唯一性的
      2、對整個數據庫設計非常了解,明確每個表的業務定位
      舉個栗子
      某業務 測試驗證sql
    select f.date_id,d.issue_name,sum(f.all_qz_cnt)
    from voc_tb_*** f,
    voc_issue_*** d,
    bi_time_*** t,
    voc_prd_*** v
    where d.issue_code = f.issue_codes
    and v.id = f.prd_id_sk
    and t.date_id = f.date_id
    and v.prd_id=711
    and t.day = 20140316
    group by f.issue_code
    order by sum(f.all_qz_cnt) desc
      開發sql
    SELECT bi_time_***.day,voc_prd_***.prd_id,voc_issue_***.issue_code,sum(voc_tb_***.all_qz_cnt) as index_135
    FROM voc_tb_*** LEFT JOIN voc_issue_*** ON voc_tb_***.issue_code = voc_issue_***.issue_code and voc_issue_***.flow_step=voc_tb_***.dim7
    LEFT JOIN voc_prd_*** ON voc_tb_***.prd_id_sk = voc_prd_***.id
    LEFT JOIN bi_time_*** ON voc_tb_***.date_id = bi_time_***.date_id
    WHERE voc_prd_***.prd_id=711 and bi_time_***.day=20140316
    GROUP BY bi_time_***.day,voc_prd_***.prd_id,voc_issue_***.issue_code
    ORDER BY index_135 desc
      發現的問題:表voc_issue_***中的issue_code不是唯一值,LEFT JOIN的特性使非唯一issue_code的sum(f.all_qz_cnt)值翻倍了,解決方案是,表voc_issue_***的的業務定位修改,作為issue_code的元數據表
      這個過程中需要關注的問題
      1、數據多樣性評估不完整,導致部分數據未被統計
      2、表定位錯誤,比如上面的例子說明的問題
      三、綜述
      1、數據是否可以提取極大的依賴于原始數據本身的健壯性,原始數據質量很大程度上決定分析數據的效果
      2、對于這類數據產品,測試側重點主要是:數據完整性、數據準確性、數據有效性、業務合理性

    posted @ 2014-09-02 09:41 順其自然EVO 閱讀(249) | 評論 (0)編輯 收藏

    解析Linux下磁盤亂序的問題

     大家在使用linux過程當中肯定遇到過磁盤亂序的問題。一般情況下引起磁盤亂序有幾種可能,比如磁盤是通過raid卡連接到服務器的,raid卡電池沒電來,這時候如果服務器掉電的情況下可能會引起磁盤亂序。再就是比如新的服務器,但raid驅動是比較老的版本,一旦重啟也經常會有亂序的可能。再就是服務器磁盤較多,sata/ssd存在混用的情況下也會有亂序的可能。
      針對這種亂序的情況應該如何解決呢?這里我總結了一種比較好的結局方法。下面這個腳本的目的是通過udevinfo(centos5)或者udevadm(centos6)來獲得磁盤的設備號,這個設備號是不會隨著服務器的重啟而改變的。獲得這個設備號后在/dev/下生成以slot0開通的相應的設備,比如有5塊磁盤則生成slot0-4這樣5個設備。這時候再掛載的時候用這些槽號來掛載就ok來。腳本如下:
    #!/bin/bash
    #set -x
    function get_release()
    {
    while read i
    do
    release=`echo "$i" |grep"release" |awk '{print $3;}'`
    main_version=${release:0:1}
    if [ ! -z $main_version ]
    then
    echo $main_version
    return 0
    fi
    done < "/etc/redhat-release"
    return 1
    }
    function get_id_serial()
    {
    device=$1;
    if [ -z "$device" ]
    then
    return -1
    fi
    device=`basename $device`
    main_version=`get_release`
    if [ $? -ne 0 ]
    then
    echo "get centos release versionerror" 1>&2
    return $?
    fi
    case $main_version in
    "5" ) cmd="/usr/bin/udevinfo-q all -n $device" ;;
    "6" ) cmd="/sbin/udevadminfo --query=all --name=$device" ;;
    esac
    ID_SERIAL=$( $cmd |grep"ID_SERIAL=" |awk -F '=' '{print $2;}')
    if [ -z $ID_SERIAL ]
    then
    return 1
    fi
    echo -n "$ID_SERIAL"
    return 0
    }
    diskctl_config="/etc/udev/rules.d/99-hd.rules"
    rm -rf $diskctl_config
    diskctl_db="/usr/diskctl/diskctl.db"
    rm -rf $diskctl_db
    mkdir -p /usr/diskctl
    touch $diskctl_db
    index=0
    for i in /dev/sd*[a-z]
    do
    device=`basename $i`
    ID_SERIAL=`get_id_serial $i`
    if [ $? -ne 0 ]
    then
    echo "FATAL: get ID_SERIAL error" 1>&2
    exit 1
    fi
    slot=`printf "slot%02d"  $index`
    echo"KERNEL==\"sd*[a-z]\",ACTION==\"add\",ENV{ID_SERIAL}==\"$ID_SERIAL\",SYMLINK+=\"$slot\"">> $diskctl_config
    echo"KERNEL==\"sd*[0-9]\",ACTION==\"add\",ENV{ID_SERIAL}==\"$ID_SERIAL\",SYMLINK+=\"$slot-part%n\"">> $diskctl_config
    echo"KERNEL==\"sd*[a-z]\",ACTION==\"remove\",ENV{ID_SERIAL}==\"$ID_SERIAL\",RUN+=\"/bin/rm-f /dev/$slot /dev/$slot-part*\"" >> $diskctl_config
    echo "#split$ID_SERIAL#############################" >> $diskctl_config
    ID_SN=`smartctl -i $i 2>/dev/null |grep"Serial\s*number" -i |awk '{print $3;}'`
    if [ -z "$ID_SN" ]
    then
    ID_SN="error"
    fi
    echo "$slot $ID_SERIAL $ID_SN"  >> $diskctl_db
    ((index=index+1))
    Done
    /sbin/udevcontrolreload_rules
    /sbin/start_udev
    /etc/fstab里面以類似下面的方式來掛載:
    /dev/slot02    /data02   ext4   defaults        0 0
    /dev/slot03    /data03   ext4   defaults        0 0
    /dev/slot04    /data04   ext4   defaults        0 0

    posted @ 2014-09-01 10:52 順其自然EVO 閱讀(349) | 評論 (0)編輯 收藏

    Oracle數據庫物理文件備份/恢復

    之前也寫過一篇類似的,雖然恢復不成問題,但總感覺有不對的地方,后面才了解到,以前自己有存在誤區的地方,重新用此文方法簡便得多。
      環境:CentOS release 5.6 (Final)
      Oracle Database Release 11.2.0.1.0
      1、解壓壓縮好的數據庫文件到相應目錄
      [root@OATest oabak]# tar -jxvf testoa_20140702.tar.bz2
      2、還原文件
      [root@OATest temp]# su - oracle
      [oracle@OATest /]$ export ORACLE_SID=testoa
      [oracle@OATest /]$ sqlplus "/as sysdba";
      OPEN_MODE
      --------------------
      READ WRITE
      3、關閉數據庫
      SQL> shutdown immediate;
      Database closed.
      Database dismounted.
      ORACLE instance shut down.
      SQL> exit
      4、在sql模式下直接質數據庫物理文件至相應的目錄(先顯示各類文件的路徑所在,后拷貝到相應路徑)
    --顯示控制文件
    select name from v$controlfile;
    --顯示數據文件
    select name from v$datafile;
    --顯示延續性的初始化參數文件(延續性:對初始化參數的在線修改可以直接作用到參數文件中)
    show parameter spfile;
    --顯示日志文件
    select member from v$logfile;
    --orapw$ORACLE_SID密碼文件:password file路徑 在$ORACLE_HOME/dbs/orapw$ORACLE_SID    //跟備份關系不大,可以隨時生成。
    [oracle@OATest temp]$ sqlplus "/as sysdba";
    host cp /usr/oabak/temp/control01.ctl /app/oracle/oradata/testoa/control01.ctl
    host cp /usr/oabak/temp/control02.ctl /app/oracle/flash_recovery_area/testoa/control02.ctl
    host cp /usr/oabak/temp/system01.dbf /app/oracle/oradata/testoa/system01.dbf
    host cp /usr/oabak/temp/sysaux01.dbf /app/oracle/oradata/testoa/sysaux01.dbf
    host cp /usr/oabak/temp/undotbs01.dbf /app/oracle/oradata/testoa/undotbs01.dbf
    host cp /usr/oabak/temp/users01.dbf /app/oracle/oradata/testoa/users01.dbf
    host cp /usr/oabak/temp/redo03.log /app/oracle/oradata/testoa/redo03.log
    host cp /usr/oabak/temp/redo02.log /app/oracle/oradata/testoa/redo02.log
    host cp /usr/oabak/temp/redo01.log /app/oracle/oradata/testoa/redo01.log
    host cp /usr/oabak/temp/spfile${ORACLE_SID}.ora $ORACLE_HOME/dbs/
    host cp /usr/oabak/temp/orapw${ORACLE_SID} $ORACLE_HOME/dbs/
      --要刪除臨時文件, 重啟的時候會自動創建temp01.dbf
      若不刪除臨時文件,會出現下面的報錯:
      ORA-01187: cannot read from file  because it failed verification tests
      ORA-01110: data file 201: '/app/oracle/oradata/testoa/temp01.dbf'
      恢復文件時候沒有刪除,舊的臨時表空間數據文件(300MB),無法創建新的臨時表空間文件(500MB) ..所以一直報錯
     5、啟動數據庫
    SQL> startup
    ORACLE instance started.
    Total System Global Area 4275781632 bytes
    Fixed Size                  2220200 bytes
    Variable Size            2113933144 bytes
    Database Buffers         2147483648 bytes
    Redo Buffers               12144640 bytes
    Database mounted.
    Database opened.
    SQL> exit
      6、修改用戶密碼
      SQL> alter user oaadmin identified by oaadmin;
      User altered.
      7、解鎖帳戶
      SQL> alter user oaadmin account unlock;
      User altered.
      上面第4步也可以利用一條命令直接處理:
    select 'host cp /u03/backup/'||substr(name,(instr(name,'/',-1)+1))||
    ' '||name from v$controlfile
    union all
    select 'host cp /u03/backup/'||substr(name,(instr(name,'/',-1)+1))||
    ' '||name from v$controlfile
    union all
    select 'host cp /u03/backup/'||substr(member,(instr(member,'/',-1)+1))
    ||' '||member from v$logfile
    union all
    select 'host cp /u03/backup/spfile${ORACLE_SID}.ora $ORACLE_HOME/dbs/'
    from dual
    union all
    select 'host cp /u03/backup/orapw${ORACLE_SID} $ORACLE_HOME/dbs/'
    from dual;

    posted @ 2014-09-01 10:50 順其自然EVO 閱讀(216) | 評論 (0)編輯 收藏

    Java程序運行機制

    計算機高級語言按程序的執行方式可分為:編譯型語言和解釋型語言。
      編譯型語言是指使用專門的編譯器、針對特定的平臺,將源程序編譯成該平臺可以執行的機器碼(包括機器指令和操作數),即目標程序,編譯結束后,可能還需要鏈接其他目標程序,最終生成可執行性程序,實現底層次的復用。編譯生成的可執行性程序可以脫離開發環境,在特定的平臺上獨立運行。但是編譯型語言的程序平臺依賴性強,當移植到其他平臺上時需要重新編譯。這類語言現有C ,C++,FORTRAN,Pascal等。
      解釋型語言是指使用專門解釋器對源程序逐行解釋成特定平臺上的機器碼,它將編譯和解釋混合在一起同時來完成,每次執行解釋性語言的程序都要進行一次編譯,因此效率比較低,但有個優點就是跨平臺性好,只有要提供特定平臺的解釋器,就可解釋成該平臺上的機器指令。現有的Ruby,Python等語言都是解釋性語言。
      java是一種特殊的高級語言, 它既是編譯型語言又是解釋型語言,需要先編譯后解釋。首先由編譯器編譯成與平臺無關的字節碼(也就是.class文件),當然,這個字節碼時不可執行的,必須用java解釋器來解釋執行。java語言里誰來負責解釋執行字節碼文件呢——java虛擬機(JVM),所有平臺上JVM向編譯器提供接口,編譯成虛擬機能夠理解字節碼,然后由虛擬機來解釋執行。
      
      當使用Java編譯器編譯java程序時,生成與平臺無關的字節碼,它不需要面向特定平臺,而只面向JVM。不同平臺的JVM不同,但他們提供了相同的接口。JVM是java跨平臺的關鍵部分。

    posted @ 2014-09-01 10:40 順其自然EVO 閱讀(163) | 評論 (0)編輯 收藏

    Deming質量管理14點

     戴明(Deming,1900~1993年)是美國的質量管理專家。從1950年開始,戴明多次到日本,向日本的工商界人士傳授一套統計質量管理的思想。可以認為,戴明對于日本的戰后復興立下了巨大功績。由于從20世紀70年代后期到80年代以后日本企業的崛起,導致美國企業開始進行反思,它們也開始接受戴明的理念。戴明所提出的企業界人士必須接受的14點是對他的管理理念的概括和總結。
      1、樹立改進產品和服務的長久使命,以使企業保持競爭力,確保企業的生存和發展,并能夠向人們提供工作機會。
      這一點頗有淵源,實際上是1950年戴明向日本企業家開出的一個治病的藥方。當時日本處于戰后的一片廢墟中,處于民不聊生的狀態,而戴明向日本的工商界人士建議通過改進質量,就可以提升企業的競爭力,企業的競爭力大了就可以增加份額,企業的份額多了就可以為很多人創造工作。
      改進質量→提升企業的競爭力→增加份額→增加工作機會,這個藥方后來被稱為戴明的鏈式反應。
      2、接受新的理念。
      在一個新的經濟時代,管理者必須意識到自己的責任,直面挑戰,領導變革。20世紀80年代以后,世界進入了一個新的經濟時期,從過去的供不應求,進入了相對過剩的時代,這時只有徹底地轉變觀念,才能夠迎接挑戰。
      3、不要將質量依賴于檢驗。
      檢驗對于質量是無濟于事的,只不過是對結果的一種確認而已。
      4、不要只是根據價格來做生意,要著眼于總成本最低,要立足于長期的忠誠和信任,最終做到一種物品只同一個供應商打交道。
      從質量管理的角度來看,系統輸入的種類越多,或者變異性越大,那么輸出變異也會越大。因此希望輸入的原材料能夠盡可能地單一品種,這樣有利于保證質量。
      5、通過持續不斷地改進生產和服務系統來實現質量與生產率的改進及成本的降低。
      質量、生產率和成本是系統的輸出,只有通過改進系統才能同時實現這三個重要指標的改進。
      6、做好培訓。
      很多情況下,人們會由于沒有充分的培訓而做不好工作。
      7、進行領導。
      領導意味著幫助人們把工作做好,而不是指手劃腳或者懲罰威嚇。
      8、驅除恐懼,以使每一個人都能為組織有效地工作。
      由于恐懼而造成的經濟損失是驚人的。例如由于恐懼使人們不敢提問題,但是最愚蠢的提問也勝于不提問。
      9、拆除部門間的壁壘。
      不同部門的成員,應當以一種團隊的方式工作,以發現和解決產品和服務在生產和使用中可能遇到的問題。企業再造就是一種拆除壁壘的舉措。
      10、取消面向一般員工的口號標語和數字目標。
      質量和生產率低下的大部分原因在于系統。一般員工不可能解決所有問題,假如沒有一個好的系統,僅僅在口號、數字上花工夫是無濟于事的。
      11、取消定額或者指標。
      單純地強調定額或指標,人們會關注數量而忘掉了質量。
      12、消除影響工作完美的障礙。
      一般地來說,人們愿意把工作做好,可是愿意做好工作并不等于就能夠做好工作。
      13、開展強有力的教育和自我提高活動。
      這是針對組織成員的要求,前面比較多的強調了要改進系統,而這條是說組織中的每一個成員都有義務提升自己。過去多少年來,很多企業提的是終身雇傭;在今天這樣的經營環境下,再沒有什么企業可以提出終身雇傭的保鏢了,但是可以提出確保人們樹立起終身可雇傭的能力。
    14、實現轉變是每一個員工的義務。
      讓組織中的每一個人都參與到轉變中來。
      這14條看似零亂,但是如果細加揣摩,實際上它無非強調了我們多次重復的一個觀念,就是第五條所說的,要通過不斷地改進系統,實現高質量、低成本和高生產率。針對系統或者過程進行努力,這是在治本;如果單純地針對質量抓質量,針對成本抓成本,針對生產率抓生產率,只不過是治標而已。所以戴明14點概括為一句口號:系統驅動行為。戴明曾經說過,管理中的問題,應當由普通員工或者普通雇員承擔的責任充其量連15%都不到,85%都是由于系統造成的。所以管理者要把精力放在改造系統上。
      總的來說,管理學中相當一部分內容是在強調過程,過程是理解現代管理的一把鑰匙。企業只有通過持續不斷地改進過程或系統,才能夠有效地提高質量,降低成本,提高生產率。面向過程的管理是一種治本的管理。理解了過程這個概念,就可以理解管理學的大多數內容。例如ISO9000標準,可以看作是從整體上對企業的過程所進行的規劃和安排。而標高超越以及6∑管理可以看作是局部的、漸進的過程改進的方法論;企業再造則是從整體上對企業的過程所進行的徹底改造。戴明等人所推行的SPC(即統計質量控制方法),是運用統計方法。
      戴明的觀點:鼓勵改革, 持續改善, 強調改善而不是檢查, Zero Defect, 強調TEAMWORK, 降低成本(cost down), 鼓勵自我開發, 其觀點實際是與QS 9000的精神, 6SIGMA活動的目的是完全一致的。

    posted @ 2014-09-01 10:39 順其自然EVO 閱讀(181) | 評論 (0)編輯 收藏

    LoadRunner中90%響應時間的理解

    最近有幾個學員問道關于90%的響應時間不太理解,顧摘錄如下內容供大家參考:
      官方解釋:
      Solution: The 90th percentile is the value for which 90% of the data points are smaller
      The 90th percentile is a measure of stastical distribution, not unlike the median. The median is the middle value. The median is the value for which 50% of the values were bigger, and 50% smaller. The 90th percentile tells you the value for which 90% of the data points are smaller and 10% are bigger.
      Statistically, to calculate the 90th percentile value:
      1. Sort the transaction instances by their value.
      2. Remove the top 10% instances.
      3. The highest value left is the 90th percentile.
      由此可見,僅僅有平均事務響應時間是不夠的。因為平均事務響應時間滿足了性能需求,未必就表示系統的性能已經滿足了絕大多數用戶的要求。
      假如有兩組測試結果,響應時間分別是 {1,3,5,10,16} 和 {5,6,7,8,9},它們的平均值都是7,你認為哪次測試的結果更理想?
      所以
      1)90%響應時間它是統計響應時間的參數,帶有統計學意義,是科學性的;
      2)可以這樣理解,這個事務所有的運行次數中,90%的次數落在這個響應時間里;(90%的響應時間不超過XX秒)
      3)90%響應時間可以在LoadRunner中根據需要進行自由設置的,例如70%,95%;
      4)為了真實的評估軟件性能,建議讓測試場景執行較長的時間,讓工具采集更多數據,數據越多,在概率論中的數據分布中看,最具有真實性;
      5)該參數是性能測試結果的一個算法,與測試工具無關,無論你是使用LoadRunner、JMeter或其它性能測試工具,該理論同樣適用。

    posted @ 2014-09-01 10:38 順其自然EVO 閱讀(832) | 評論 (0)編輯 收藏

    Selenium打開帶有擴展的chrome

     每當用跑用例失敗的時候,第一反應就是查看元素定位是不是正確,幫助定位的擴展是必不可少的,但是selenium一般打開的是不帶擴展的干凈的瀏覽器,如果操作步驟很長的話,就得手動去執行直到那一步去檢查元素,很費時,那怎么樣讓它打開的是帶有擴展的瀏覽器呢,firefox簡單,很多教程一搜照做即可,但chrome我搜索了一個小時都未見到···現在自己想辦法解決了,記錄下來供以后查閱。
      首先進入C:\Users(用戶)\你的電腦名稱\AppData\Local\Google\Chrome\User Data\Default\Extensions,點開Extensions,里面的文件夾就是安裝過的擴展,(記得先把電腦隱藏文件夾顯示出來,否則找不到) 但是名字是一堆我看不懂的無序的英文字母,我的辦法是一個一個點開找到對應的插件版本號,版本號在chrome Extensions選項里找然后打包你需要的插件:打開chrome的設置,在里面點開擴展程序,選中開發者模式,你安裝的插件的下面會出現一個ID,這個ID對應的就是你要打包的插件,然后打包擴展程序,找到對應的文件夾(或者你也可以把這個文件夾復制到電腦任意地方)下面的版本號的文件夾,也就是ID名文件夾內部的那個文件夾,然后點擊打包擴展程序,就可以了,會相應的在版本號的同一級地方出現后綴名是crx和pem的文件,這個crx的文件就是我們需要的。準備工作完成,看代碼:
      ChromeOptions options = new ChromeOptions();
      options.addExtensions(new File("C:\\Users\\swang\\AppData\\Local\\Google\\Chrome\\UserData\\Default\\Extensions\\ijaobnmmgonppmablhldddpfmgpklbfh\\1.6.0_0.crx"));//添加擴展的方法,將crx文件所在的路徑添加進去
      WebDriver driver=new ChromeDriver(options);

    posted @ 2014-09-01 10:36 順其自然EVO 閱讀(1416) | 評論 (0)編輯 收藏

    系統監測及其評價標準分析

      1、磁盤
      在性能測試中,主要監測磁盤的如下指標來評估磁盤的使用情況:
      a、繁忙程度。
      b、平均等待時間。
      如果磁盤的繁忙程度高,平均等待時間長,則說明磁盤IO是系統性能的瓶頸。
      2、網絡
      性能測試中對網絡的監測主要考慮:網絡帶寬的利用率。網絡帶寬利用率過高,說明網絡帶寬可能不足。
      3、服務器負載
      通過top、vmstat命令查看查看系統負載load average

    posted @ 2014-09-01 10:35 順其自然EVO 閱讀(140) | 評論 (0)編輯 收藏

    WEB常用測試用例—文本輸入框

     對于普通的文本輸入框,通常要檢查以下幾點:
      1. 中英文空格
      2. 字符串首尾含空格
      3. 字符串中間含空格
      4. 字母
      5. 數字
      6. 中文
      7. 特殊字符
      8. null/NULL
      9. 超長字符
      10. html格式字符串
      對于費用類的文本輸入框,通常要檢查以下幾點:
      1. 正常整數
      2. 正常小數
      3. 負數
      4. 以0開頭/結尾的整數
      5. 以0開頭/結尾的小數(不是0.多少這種)
      6. 超長整數
      7. 超長小數
      8. 以小數點開頭/結束
      9. 中英文空格
      10. 字母
      11.特殊字符
      12. 中文
      13. 0
      14. 小數點多于1個
      如最多能輸入xxxxxxxx.xx

    posted @ 2014-09-01 10:06 順其自然EVO 閱讀(291) | 評論 (0)編輯 收藏

    僅列出標題
    共394頁: First 上一頁 55 56 57 58 59 60 61 62 63 下一頁 Last 
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成网站看在线播放| 一级做α爱过程免费视频| 免费在线观看自拍性爱视频| 亚洲一区免费在线观看| 久久久久亚洲AV成人网| 亚洲人成网站18禁止| 最近中文字幕电影大全免费版 | 亚洲制服丝袜第一页| 波多野结衣中文一区二区免费| 亚洲人成网男女大片在线播放| 国产成人精品亚洲精品| 美女视频黄a视频全免费网站色 | 午夜男人一级毛片免费| 亚洲一级高清在线中文字幕| 免费不卡在线观看AV| 亚洲av无码成人黄网站在线观看 | 国产一精品一aⅴ一免费| 亚洲熟妇av午夜无码不卡| 成人免费毛片视频| 亚洲色少妇熟女11p| 亚洲日韩aⅴ在线视频| 一区二区三区在线免费| 亚洲国产中文在线视频| 成人免费毛片视频| 亚洲成人免费在线| 国产日本亚洲一区二区三区| 国产亚洲精久久久久久无码77777| 国产午夜成人免费看片无遮挡| 亚洲人成伊人成综合网久久久| 思思99re66在线精品免费观看| 精品国产免费一区二区三区香蕉| 亚洲精品自产拍在线观看动漫| 97在线视频免费播放| 一级毛片视频免费| 亚洲欧洲精品成人久久曰| 亚洲精品动漫在线| 成人免费视频试看120秒| 久久久国产精品无码免费专区| 亚洲综合久久久久久中文字幕| av在线亚洲欧洲日产一区二区| 国产成人高清精品免费软件|