<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/

    目前游戲測試的三種處境

      第一種:玩游戲,找bug;高級一點就是用專業的測試方法進行游戲測試
      特征點:隸屬于程序或由策劃兼職---也就是并非一個和程序策劃平行的部門,而是一個下級部門(有些則根本被排除在研發體系之外)
      職責:找bug,幫助修正bug等。
      國內最常見的就是這種。
      第二種:對游戲研發的整個過程進行質量控制(QC)
      特征點:測試部門是一個和策劃程序平行的部門(實質上平行,某些表面上平行的其實也要歸為第一類)
      職責:找bug,幫助修正bug;參與游戲早期開發,以預防bug;在開發流程上提出建議,以預防bug。
      國內一線公司多數是這種。
      第三種:對游戲研發的整個過程進行質量管理(QA)
      特征點:QA高于程序和策劃,同時有一個直屬的測試部門(QC,和程序策劃平行)
      職責:改進開發流程,預防bug。
      至今沒有見過。

    posted @ 2014-07-22 09:15 順其自然EVO 閱讀(138) | 評論 (0)編輯 收藏

    打造自己的Linux服務器監控小工具

         摘要: 周末在家蠻無聊的,思考人生的同時突發奇想就寫一個服務器監控的小工具吧。學JAVA快1年了,剛好檢驗一下自己!  仔細想想呢估計作用可能也有限,畢竟外面各種監控工具也很多,初衷其實也只是練練手,加上平時比較懶,那么為了更方便的看服務器性能指標,所以就選了這個題材咯,那么就開始吧。  不過優點也是有的嘛,至少不需要在服務器端裝一個腳本之類的了。  一、小工具的功能  1 能夠讀取服務器CPU,IO,M...  閱讀全文

    posted @ 2014-07-21 10:18 順其自然EVO 閱讀(2118) | 評論 (0)編輯 收藏

    CodeFirstMigrations更新數據庫結構

      背景
      code first起初當修改model后,要持久化至數據庫中時,總要把原數據庫給刪除掉再創建(DropCreateDatabaseIfModelChanges),此時就會產生一個問題,當我們的舊數據庫中包含一些測試數據時,當持久化更新后,原數據將全部丟失,故我們可以引入EF的數據遷移功能來完成。
      要求
      已安裝NuGet
      過程示例
    //原model
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    public class Lesson {
    public int lessonID { get; set; }
    [Required]
    [MaxLength(50)]
    public string lessonName { get; set; }
    [Required]
    public string teacherName { get; set; }
    public virtual UserInfo UserInfo{get;set;}
    }
    //新model
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    public class Lesson {
    public int lessonID { get; set; }
    [Required]
    [MaxLength(50)]
    public string lessonName { get; set; }
    [Required]
    [MaxLength(10)]
    public string teacherName { get; set; }
    public virtual UserInfo UserInfo{get;set;}
    }
      注:區別在于,我們給teacherName屬性加了一個長度限制。
      接下來,我們將開始持久化此model至數據庫中(我們現在只是對屬性作修改,此時數據庫中此字段的長度為nvarchar(max),并不是nvarchar(10))
      1:在config中配置數據庫連接:
      <connectionStrings>
      <add name="TestUsersDB" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TestUsersDB;Data Source=XCL-PC\SQLEXPRESS" providerName="System.Data.SqlClient" />
      </connectionStrings>
      2:打開NuGet控制臺:
     3:運行命令Enable-Migrations
      可能會出現如下錯誤:
      Checking if the context targets an existing database...
      Detected database created with a database initializer. Scaffolded migration '201212090821166_InitialCreate' corresponding to existing database. To use an automatic migration instead, delete the Migrations folder and re-run Enable-Migrations specifying the -EnableAutomaticMigrations parameter.
      Code First Migrations enabled for project MvcApplication1.
      此時項目會出現如下文件夾:
      打開configuation.cs,將作出如下修改:
      public Configuration()
      {
      AutomaticMigrationsEnabled = true;
      }
      再次執行Update-Database:
      因為我把長度從max改為10,在更新數據結構時,它認為此操作會導致數據丟失,如下:
      Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
      No pending code-based migrations.
      Applying automatic migration: 201212090848057_AutomaticMigration.
      Automatic migration was not applied because it would result in data loss.
      如果確保沒事,只需給此命令加個強制執行的參數即可:
      Enable-Migrations -Force
      最后再次執行:Update-Database
      數據庫中的原數據也沒有丟失!

    posted @ 2014-07-21 09:55 順其自然EVO 閱讀(343) | 評論 (0)編輯 收藏

    Java加密算法研究

         摘要: ●  BASE64 嚴格地說,屬于編碼格式,而非加密算法  ●  MD5(Message Digest algorithm 5,信息摘要算法)  ●  SHA(Secure Hash Algorithm,安全散列算法)  ●  HMAC(Hash Message Authentication Code,散列消息...  閱讀全文

    posted @ 2014-07-21 09:53 順其自然EVO 閱讀(257) | 評論 (0)編輯 收藏

    初試selenium用python做自動化測試

     搭建平臺windows
      準備工具如下:
      -------------------------------------------------------------
      下載python
      http://python.org/getit/
      下載setuptools 【python 的基礎包工具】
      http://pypi.python.org/pypi/setuptools
      下載pip 【python 的安裝包管理工具】
      https://pypi.python.org/pypi/pip
      1、python 的安裝,這個不解釋,exe 文件運行安裝即可,既然你選擇python,相信你
      是熟悉python 的,我安裝目錄C:\Python27
      2、setuptools 的安裝也非常簡單,同樣是exe 文件,默認會找到python 的安裝路徑,
      將安裝到C:\Python27\Lib\site-packages 目錄下
      3、安裝pip ,我默認解壓在了C:\pip-1.3.1 目錄下
      4、打開命令提示符(開始---cmd 回車)進入C:\pip-1.3.1目錄下輸入:
      C:\pip-1.3.1 > python setup.py install
      (如果提示python 不是內部或外部命令!別急,去配置一下環境變量吧)
      5、再切換到C:\Python27\Scripts 目錄下輸入:
      C:\Python27\Scripts > easy_install pip
      6、安裝selenium,(下載地址: https://pypi.python.org/pypi/selenium )
      如果是聯網狀態的話,可以直接在C:\Python27\Scripts 下輸入命令安裝:
      C:\Python27\Scripts > pip install -U selenium
      7. 下載解壓,你會得到一個chromedriver.exe 文件,把這個文件放到
      chrome 的安裝目錄下...\Google\Chrome\Application\ ,然后設置path 環境變量,把
      chrome 的安裝目錄(我的:C:\Program Files\Google\Chrome\Application)
      然后測試
    #encoding: utf-8
    import os
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    chormedriver = "C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chromedriver.exe"
    #打開IE瀏覽器
    #iedriver = "C:\Program Files\Internet Explorer\IEDriverServer.exe"
    #os.environ["webdriver.ie.driver"] = iedriver
    #打開谷歌瀏覽器
    os.environ["webdriver.chrome.driver"]= chormedriver
    browser = webdriver.Ie(chormedriver)
    browser.maximize_window()
    browser.get("http://www.51.la/")
    #assert "Python" in driver.title
    elem = browser.find_element_by_id("uname")  #根據id定位到節點
    elem.send_keys("xxxx")  #向文本框添加內容
    elem = browser.find_element_by_id("upass")  #同上
    elem.send_keys("xxxxx")   #同上
    browser.find_element_by_class_name("btlogin").click()  #點擊提交按鈕
    browser.find_element_by_link_text("查看統計報表").click()
    browser.find_element_by_link_text("訪問明細").click()
    browser.find_element_by_link_text("下載當前報表").click()
      方法詳見API,重點在節點的定位上,有多種定位方法。

    posted @ 2014-07-21 09:43 順其自然EVO 閱讀(1394) | 評論 (0)編輯 收藏

    前端網絡(性能)監測工具 berserkJS

    berserkJS 是基于 Qt (C++跨平臺庫)開發的前端網絡(性能)監測工具。 它的核心功能是通過內置 webkit 收集由頁面實際網絡請求相關數據。 偏重于頁面上線前檢測與評估。
      頁面性能分析工具,可用 JS 編寫自己的檢測、分析規則。 基于 Qt 開發,可跨平臺編譯,部署。內置基于 QtWebkit 的瀏覽器環境。 源碼需在目標系統中編譯后,可產生運行于 Windows / Linux / Mac 系統的可執行文件。 工程中自帶 Window 系統中動態編譯的可執行文件,此文件位于 bulid 目錄下。
      使用案例
      無界面瀏覽器測試:在不依賴本地任何瀏覽器的情況下,運行測試框架,如 QUnit,Capybara, QUnit, Mocha, WebDriver, YUI Test, BusterJS, FuncUnit, Robot Framework 等。
      頁面自動化:可以無障礙訪問和操作網頁的標準 DOM API 以及頁面所用 JS 變量、對象、屬性等內容。
      屏幕捕獲:以編程方式獲取網頁全部或部分內容,可根據 Selector 截取指定 DOM 元素渲染情況;包括 CSS,SVG 和 Canvas。可將截取圖片 base64 化,以便發送給遠端服務器保存。
      網絡監控:自動化的網絡性能監控,跟蹤頁面所有資源加載情況并可簡便的將輸出結果格式化為標準HAR格式。
      頁面性能監控:自動化的頁面渲染監控,可獲取 CPU、 內存使用情況數據,根據頁面整體情況可簡便的輸出首次渲染時間、首屏渲染時間等關鍵數據。
      工具特性
      跨平臺性:基于 Qt 開發,可跨平臺編譯,部署。內置基于 QtWebkit 的瀏覽器環境。源碼需在目標系統中編譯后,可產生運行于 Windows / Linux / Mac 系統的可執行文件。
      功能性:工具內置 webkit 瀏覽器內核,可響應瀏覽器內核事件回調、支持發送鼠標消息給瀏覽器、包裝瀏覽器網絡請求數據為JS數據格式、可與瀏覽器內JS做數據交互。
      開放性:工具將主要操作均包裝為JS語法與數據格式,采用JS語法包裝,前端工程師可根據API組裝出符合各自預期的檢測功能。
      接口性:工具本身支持命令行參數,可帶參調用。API支持處理外部進程讀取輸出流、支持HTTP發送數據。可由 WEB 程序遠程調用后獲取測試的返回結果。
      標準性:完全真實的瀏覽器環境內 DOM,CSS,JavaScript,Canvas,SVG 可供使用,絕無仿真模擬。
      特點差異
      與 PhantomJS 相比具有以下不同:
      API 簡易: 更直接的 API,如獲取網絡性能數據,僅需 3 行代碼,而非 PhantomJS 的幾十行,且信息量比 PhantomJS 豐富。
      API 標準化: 常用 API 均采用 W3 規范標準命名,事件處理代碼可重復綁定而不相互覆蓋,可以無縫兼容 Wind.JS 等異步流程處理庫來解決自動化時異步流程控制問題。
      頁面性能信息豐富:具有頁面渲染和 CPU、 內存使用情況數據獲取能力,可輸出首次渲染時間、首屏渲染時間等頁面性能關鍵數據。
      調試便利: 具有 GUI 界面與命令行狀態兩種形式,開發調試期可使用 GUI 模式定位問題,此模式中可開啟 WebKit 的 Inspector 工具輔助調試頁面代碼與 DOM 。實際運行時可開啟命令行狀態避免自動執行時 GUI 界面干擾。
      應用企業
      新浪微博:已使用 berserkJS 構建前端性能監測數據分析平臺,防止微博主要產品在不停開發迭代時,頁面性能產生退化。
      Cisco: 用于 WebEx 項目的自動化測試

    posted @ 2014-07-21 09:43 順其自然EVO 閱讀(281) | 評論 (0)編輯 收藏

    重新定義Bug的三維

      重新定了一下bug的三維,增加影響范圍。
      三維bug定義,bug三維:嚴重程度,處理優先級,影響范圍。
      1.Bug嚴重程度。由Bug的創建者視情況來指定,其中1為最嚴重的問題,4為最小的問題。
      一般來講,1級為系統崩潰或者數據丟失的問題;2級為主要功能的問題;3級為次要功能的問題;4級為細微的問題。
      2.Bug處理優先級。由Bug的處理人員按照當前業務需求、開發計劃和資源狀態指定,其中1的優先級最高,4的優先級最低。
      一般來講,1級為需要立即解決的問題;2級為需要在指定時間內解決的問題;3級為項目開發計劃內解決的問題;4級為資源充沛時解決的問題。
      3.Bug影響范圍。由Bug的創建者視情況來指定,其中1為影響范圍最大的問題,4為影響范圍最小的問題。
      一般來講,1級為直接阻礙整個系統或項目測試繼續的版本BUG,如環境問題,性質定為整個項目延遲提測,可順延測試時間;2級為直接阻礙模塊或子系統功能測試繼續的BUG,如,剛點一下功能就報錯,該功能測試流程完全走不通,無法繼續測試,性質定為部分功能延遲提測,可順延測試時間;3級為間接影響部分功能模塊繼續測試的BUG,性質定義為降低測試執行效率,可根據該類BUG的數量,修復效率適當順延測試時間。4級為幾乎不影響測試進度,可忽略對測試進度的影響。

    posted @ 2014-07-21 09:42 順其自然EVO 閱讀(179) | 評論 (0)編輯 收藏

    我對測試的理解的變遷過程

      從入行一開始就決定了不走技術路線,因為游戲之所以是游戲是因為其游戲性而不是技術性,我愛的是游戲,而不是技術。
      1:剛入行的時候:找嚴重bug,或者操作步驟很多的bug,很有成就感,因為找到別人找不到的bug
      2:后來意識到,基礎的簡單的bug價值不見得比嚴重的難找的bug價值低,開始轉向追求覆蓋、不漏基礎簡單的bug
      3:開始關注流程,流程可以減少人為失誤導致的bug,開始關注預防bug,特別是通過流程來預防人為bug
      4:認為流程最重要,幾乎所有的bug都可以通過流程來預防和解決
      5:認為測試最重要,要掌控流程和版本發布的決定權
      6:開始認識到信息的重要性,認為測試的職責是提供產品信息,而不是自己掌控決定權
      7:開始認識到,測試要做的太多,不可能全部做到,要做取舍
      8:測試是輔助,不僅僅輔助產品,而且要輔助團隊;團隊重要性高于項目
      9:測試不僅僅要提供產品的信息,也要提供人的信息,團隊的信息

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

    一個小時內學習SQLite數據庫

      1. 介紹
      SQLite 是一個開源的嵌入式關系數據庫,實現自包容、零配置、支持事務的SQL數據庫引擎。 其特點是高度便攜、使用方便、結構緊湊、高效、可靠。 與其他數據庫管理系統不同,SQLite 的安裝和運行非常簡單,在大多數情況下 - 只要確保SQLite的二進制文件存在即可開始創建、連接和使用數據庫。如果您正在尋找一個嵌入式數據庫項目或解決方案,SQLite是絕對值得考慮。
      2. 安裝
      SQLite on Windows
      1)進入 SQL 下載頁面:http://www.sqlite.org/download.html
      2)下載 Windows 下的預編譯二進制文件包:
      sqlite-shell-win32-x86-<build#>.zip
      sqlite-dll-win32-x86-<build#>.zip
      注意: <build#> 是 sqlite 的編譯版本號
      將 zip 文件解壓到你的磁盤,并將解壓后的目錄添加到系統的 PATH 變量中,以方便在命令行中執行 sqlite 命令。
      可選: 如果你計劃發布基于 sqlite 數據庫的應用程序,你還需要下載源碼以便編譯和利用其 API
      sqlite-amalgamation-<build#>.zip
      SQLite on Linux
      在 多個 Linux 發行版提供了方便的命令來獲取 SQLite:
      /* For Debian or Ubuntu /*
      $ sudo apt-get install sqlite3 sqlite3-dev
      /* For RedHat, CentOS, or Fedora/*
      $ yum install SQLite3 sqlite3-dev
      SQLite on Mac OS X
      如果你正在使用 Mac OS 雪豹或者更新版本的系統,那么系統上已經裝有 SQLite 了。
      3. 創建首個 SQLite 數據庫
      現在你已經安裝了 SQLite 數據庫,接下來我們創建首個數據庫。在命令行窗口中輸入如下命令來創建一個名為 test.db 的數據庫。
      sqlite3 test.db
      創建表:
      sqlite> create table mytable(id integer primary key, value text);
      2 columns were created.
      該表包含一個名為 id 的主鍵字段和一個名為 value 的文本字段。
      注意: 最少必須為新建的數據庫創建一個表或者視圖,這么才能將數據庫保存到磁盤中,否則數據庫不會被創建。
      接下來往表里中寫入一些數據:
      sqlite> insert into mytable(id, value) values(1, 'Micheal');
      sqlite> insert into mytable(id, value) values(2, 'Jenny');
      sqlite> insert into mytable(value) values('Francis');
      sqlite> insert into mytable(value) values('Kerk');
      查詢數據:
      sqlite> select * from test;
      1|Micheal
      2|Jenny
      3|Francis
      4|Kerk
      設置格式化查詢結果:
    sqlite> .mode column;
    sqlite> .header on;
    sqlite> select * from test;
    id          value
    ----------- -------------
    1           Micheal
    2           Jenny
    3           Francis
    4           Kerk


     .mode column 將設置為列顯示模式,.header 將顯示列名。
      修改表結構,增加列:
      sqlite> alter table mytable add column email text not null '' collate nocase;;
      創建視圖:
      sqlite> create view nameview as select * from mytable;
      創建索引:
      sqlite> create index test_idx on mytable(value);
      4. 一些有用的 SQLite 命令
      顯示表結構:
      sqlite> .schema [table]
      獲取所有表和視圖:
      sqlite > .tables
      獲取指定表的索引列表:
      sqlite > .indices [table ]
      導出數據庫到 SQL 文件:
      sqlite > .output [filename ]
      sqlite > .dump
      sqlite > .output stdout
      從 SQL 文件導入數據庫:
      sqlite > .read [filename ]
      格式化輸出數據到 CSV 格式:
      sqlite >.output [filename.csv ]
      sqlite >.separator ,
      sqlite > select * from test;
      sqlite >.output stdout
      從 CSV 文件導入數據到表中:
      sqlite >create table newtable ( id integer primary key, value text );
      sqlite >.import [filename.csv ] newtable
      備份數據庫:
      /* usage: sqlite3 [database] .dump > [filename] */
      sqlite3 mytable.db .dump > backup.sql
      恢復數據庫:
      /* usage: sqlite3 [database ] < [filename ] */
      sqlite3 mytable.db < backup.sql

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

    網站性能測試工具—ApacheBench

      對于網站性能測試來說,一般我們會使用loadrunner來實現,而它過于龐大,使我們感到有些不爽,而今天介紹的ApacheBench工具,它小而精,使用簡單,效果直觀,可以說,是比lr更好用的性能測試工具.
      下面介紹幾個概念
      1:吞吐率(Requests per second)
      服務器并發處理能力的量化描述,單位是reqs/s,指的是某個并發用戶數下單位時間內處理的請求數。某個并發用戶數下單位時間內能處理的最大請求數,稱之為最大吞吐率。
      記住:吞吐率是基于并發用戶數的。這句話代表了兩個含義,1:吞吐率和并發用戶數相關;2:不同的并發用戶數下,吞吐率一般是不同的。
      計算公式:總請求數  / 處理完成這些請求數所花費的時間,即
      Request per second = Complete requests  / Time taken for tests
      2:并發連接數(The number of concurrent connections)
      并發連接數指的是某個時刻服務器所接受的請求數目,簡單的講,就是一個會話。
      3:并發用戶數(The number of concurrent users,Concurrency Level)
      要注意區分這個概念和并發連接數之間的區別,一個用戶可能同時會產生多個會話,也即連接數。在HTTP/1.1下,IE7支持兩個并發連接,IE8支持6個并發連接,FireFox3支持4個并發連接,所以相應的,我們的并發用戶數就得除以這個基數。
      下面主要說一下它的幾個主要的參數
      運行參數
      請求為100,并發為10,命令如下:ApacheBench -n100 -c10 http://uri
      運行結果
    Benchmarking www.cnblogs.com (be patient)
    Completed 100 requests
    Completed 200 requests
    Completed 300 requests
    Completed 400 requests
    Completed 500 requests
    Completed 600 requests
    Completed 700 requests
    Completed 800 requests
    Completed 900 requests
    Finished 1000 requests
    Server Software:
    Server Hostname:        www.cnblogs.com
    Server Port:            80
    Document Path:          /
    Document Length:        45373 bytes
    Concurrency Level:      10
    Time taken for tests:   45.299591 seconds
    Complete requests:      1000
    Failed requests:        0
    Write errors:           0
    Total transferred:      45679011 bytes
    HTML transferred:       45373000 bytes
    Requests per second:    22.08 [#/sec] (mean)
    Time per request:       452.996 [ms] (mean)
    Time per request:       45.300 [ms] (mean, across all concurrent requests)
    Transfer rate:          984.73 [Kbytes/sec] received
    Connection Times (ms)
    min  mean[+/-sd] median   max
    Connect:       26   44 189.5     31    3035
    Processing:    89  405 583.3    284    5190
    Waiting:       30  143 344.6     97    5031
    Total:        116  450 611.7    315    5224
    Percentage of the requests served within a certain time (ms)
    50%    315
    66%    322
    75%    331
    80%    343
    90%    408
    95%    549
    98%   3333
    99%   3375
    100%   5224 (longest request)

    posted @ 2014-07-18 10:00 順其自然EVO 閱讀(252) | 評論 (0)編輯 收藏

    僅列出標題
    共394頁: First 上一頁 81 82 83 84 85 86 87 88 89 下一頁 Last 
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 美女视频黄频a免费| 亚洲av无码国产精品色午夜字幕| 国产成人综合亚洲绿色| 97国产免费全部免费观看| 在线观看免费污视频| 久久久亚洲AV波多野结衣| 国产日韩一区二区三免费高清| 91成人免费在线视频| 亚洲av中文无码字幕色不卡| 成人毛片手机版免费看| GOGOGO高清免费看韩国| 国产成人亚洲综合一区| 在线亚洲精品自拍| 国产麻豆成人传媒免费观看| 亚洲AV无码日韩AV无码导航| 成人午夜18免费看| 国产精品免费看久久久| 国产亚洲一卡2卡3卡4卡新区 | 中文毛片无遮挡高清免费| 99久久99这里只有免费费精品| 国产精品手机在线亚洲| 亚洲视频网站在线观看| 亚洲一区二区三区AV无码 | 亚洲一区二区中文| 亚洲国产精品综合久久网络| 久久精品国产免费观看三人同眠| 亚洲精品综合在线影院| 免费观看理论片毛片| 久久久免费精品re6| 中文有码亚洲制服av片| 亚洲日本精品一区二区| 久久国产精品免费| 亚洲成在人天堂一区二区| 97在线观看永久免费视频| 亚洲精品一二三区| 亚洲经典在线中文字幕| 亚洲精品成人无码中文毛片不卡| h视频在线免费看| 东方aⅴ免费观看久久av| 亚洲国产日韩在线人成下载| 全黄a免费一级毛片人人爱|