qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          變異測試工具配置-muclipse

            變異測試是通過改變被測對象的源碼,比較單元測試用例的結(jié)果,來判斷單元測試用例的質(zhì)量。了解不是很深,只能粗粗介紹,歡迎大家補(bǔ)充。
            網(wǎng)上發(fā)現(xiàn)變異測試的資料很少,大多是學(xué)術(shù)論文為主。
            變異測試的公主要是mujava與muclipse,muclipse是基于mujava的,并且集成于eclipse上的插件,官網(wǎng)介紹
            mujava http://cs.gmu.edu/~offutt/mujava/
            muclipse http://muclipse.sourceforge.net/index.php
            根據(jù)官網(wǎng)一步步來,居然沒有成功,逐個(gè)改變參數(shù)摸索,終于能出結(jié)果了,所以寫下這邊文章,希望減少大家研究的時(shí)間
            1. 安裝muclipse
            由于官網(wǎng)提供的下載url打不開,只好網(wǎng)上找個(gè)edu.ncsu.muclipse_1.3.0.jar下載,放入eclipse plugins目錄下,重新啟動(dòng)eclipse,就算安裝上啦,eclipse的這種安裝方法真簡單。
            2. 準(zhǔn)備的測試案例
          package demo1;
          public class Example {
          public int multiply(int a, int b) {
          return a * b;
          }
          }
          package demo1;
          public class ExampleTest {
          public void setUp() throws Exception {
          }
          public void tearDown() throws Exception {
          }
          public int testMultiply()
          {
          Example ex = new Example();
          return ex.multiply(1, 1);
          }
          }
            3. 配置環(huán)境
            1. 新建或者導(dǎo)入項(xiàng)目,下載extendedOJ.jar包,導(dǎo)入到Libraries
            右擊project name -> properties -> java build path -> Libraries -> Add External JARs, select it and click ok
            in source tab, 可以修改output folder,就是編譯后的.class文件的地址,這里默認(rèn)是bin
           2. 編譯項(xiàng)目,可以在bin里面看到編譯后的.class文件
            右鍵項(xiàng)目名,build project
            3. 生成變異后的源文件
            1. 右鍵項(xiàng)目名-> run as -> run configuration...
            配置Deriectories
            配置Operator
            click run 生成變異代碼,具體見result目錄
            4.eclipse里顯示mutation結(jié)果
            windows -> show view
            注意這邊只有method-level有變異的實(shí)例
          5. 執(zhí)行test
            配置muclipse test:右擊項(xiàng)目名->run as -> run configuration
            配置testing operation : 由于生產(chǎn)的變異實(shí)例只有method level的,所以class-level的不要勾上,不然會有錯(cuò)誤,click run button
            6. 看結(jié)果
            點(diǎn)擊刷新按鈕

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

          TestNG自定義記錄器測試報(bào)告

          在本節(jié)中,我們將介紹一個(gè)例子,編寫自定義記錄器和TestNG的方法。要編寫一個(gè)定制的記錄器類,我們的擴(kuò)展類應(yīng)實(shí)現(xiàn)IReporter接口。讓我們繼續(xù)前進(jìn),并創(chuàng)建一個(gè)示例使用自定義的記錄器。
            創(chuàng)建測試案例類
            創(chuàng)建一個(gè)Java類為 SampleTest.java 在 C:\ > TestNG_WORKSPACE
          import org.testng.Assert;
          import org.testng.annotations.Test;
          public class SampleTest {
          @Test
          public void testMethodOne(){
          Assert.assertTrue(true);
          }
          @Test
          public void testMethodTwo(){
          Assert.assertTrue(false);
          }
          @Test(dependsOnMethods={"testMethodTwo"})
          public void testMethodThree(){
          Assert.assertTrue(true);
          }
          }
            上述測試類的包含三個(gè)測試方法,其中testMethodOne 和 testMethodThree將通過在執(zhí)行時(shí),而testMethodTwo由通過一個(gè)falseBoolean的值A(chǔ)ssert.assertTrue方法,它是用于在測試中的真值條件失敗。
            創(chuàng)建自定義報(bào)告類
            創(chuàng)建另一個(gè)新的類名為 CustomReporter.java 在 C:\ > TestNG_WORKSPACE
          import java.util.List;
          import java.util.Map;
          import org.testng.IReporter;
          import org.testng.ISuite;
          import org.testng.ISuiteResult;
          import org.testng.ITestContext;
          import org.testng.xml.XmlSuite;
          public class CustomReporter implements IReporter{
          @Override
          public void generateReport(List xmlSuites, List suites,
          String outputDirectory) {
          //Iterating over each suite included in the test
          for (ISuite suite : suites) {
          //Following code gets the suite name
          String suiteName = suite.getName();
          //Getting the results for the said suite
          Map<string, isuiteresult=""> suiteResults = suite.getResults();
          for (ISuiteResult sr : suiteResults.values()) {
          ITestContext tc = sr.getTestContext();
          System.out.println("Passed tests for suite '" + suiteName +
          "' is:" + tc.getPassedTests().getAllResults().size());
          System.out.println("Failed tests for suite '" + suiteName +
          "' is:" +
          tc.getFailedTests().getAllResults().size());
          System.out.println("Skipped tests for suite '" + suiteName +
          "' is:" +
          tc.getSkippedTests().getAllResults().size());
          }
          }
          }
          }
            前面的的類實(shí)現(xiàn)org.testng.IReporter 接口。它實(shí)現(xiàn)了IReporter接口定義的方法GenerateReport。這個(gè)方法有三個(gè)參數(shù):
            第一個(gè)是xmlSuite,這是TestNG的測試XML正在執(zhí)行中提到的列表套件
            第二個(gè)是套件,其中包含一套測試執(zhí)行后信息,該對象包含了所有的信息包,類,測試方法和測試執(zhí)行結(jié)果。
            第三的outputDirectory,報(bào)告將產(chǎn)生的輸出文件夾路徑,其中包含的信息。
          創(chuàng)建 testng.xml
            創(chuàng)建一個(gè)文件testng.xml 在 C:\ > TestNG_WORKSPACE 來執(zhí)行測試用例
          <?xml version="1.0" encoding="UTF-8"?>
          <suite name="Simple Reporter Suite">
          <listeners>
          <listener class-name="CustomReporter" />
          </listeners>
          <test name="Simple Reporter test">
          <classes>
          <class name="SampleTest" />
          </classes>
          </test>
          </suite>
            編譯SampleTest,CustomReporter類使用javac
            C:\TestNG_WORKSPACE>javac CustomReporter.java SampleTest.java
            運(yùn)行 testng.xml.
            C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml
            驗(yàn)證輸出
            ===============================================
            Simple Reporter Suite
            Total tests run: 3, Failures: 1, Skips: 1
            ===============================================
            Passed tests for suite 'Simple Reporter Suite' is:1
            Failed tests for suite 'Simple Reporter Suite' is:1
            Skipped tests for suite 'Simple Reporter Suite' is:1
            前面的例子顯示了一個(gè)簡單的自定義報(bào)告器,打印的數(shù)量在控制臺上對每個(gè)套件包含在上述的測試執(zhí)行失敗,通過跳過測試。報(bào)告器主要是用于測試的執(zhí)行,以生成最終的報(bào)告。擴(kuò)展程序可以被用來生成XML,HTML,CHM,CSV或文本格式的文件,根據(jù)報(bào)告要求。

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

          再談如何推廣單元測試

          以前曾經(jīng)寫了一篇博文談如何推廣單元測試,最近有朋友問我如下的問題,因此便又寫了本文,閱讀時(shí)請綜合原來的博文。
            問題:
            有開發(fā)人員認(rèn)為進(jìn)行單元測試會花費(fèi)大量時(shí)間來編寫測試用例,因此他們做單元測試的意愿比較低,請問有何好的建議進(jìn)行單元測試的改進(jìn)?
            解答:
            1、首先應(yīng)該明確單元的含義。單元在面向?qū)ο蟮某绦蛑兄傅氖且粋€(gè)類,在結(jié)構(gòu)化的方法中指的是一個(gè)函數(shù)。
            2、其次應(yīng)該明確單元測試的方法。單元測試的常用方法包括:
            (1) 靜態(tài)檢查,即采用靜態(tài)代碼檢查的工具對程序進(jìn)行內(nèi)部邏輯的分析,以分析程序中可能的錯(cuò)誤或壞味道。
            (2) 動(dòng)態(tài)測試,通過編寫單元測試程序,設(shè)計(jì)單元測試用例,測試每個(gè)函數(shù)或每個(gè)類的邏輯正確性。
            3如果一個(gè)類或一個(gè)函數(shù)對其他的類或環(huán)境依賴性很強(qiáng),需要編寫大量的樁程序或驅(qū)動(dòng)程序,那恰恰說明了這個(gè)類或這個(gè)函數(shù)的設(shè)計(jì)有問題,違背了“低耦合”的基本設(shè)計(jì)原則,這也正式敏捷方法中提倡的“測試驅(qū)動(dòng)開發(fā)”的作用之一。
            4、質(zhì)量的投入產(chǎn)出也是一種平衡,需要在單元測試上投入到什么程度首先是公司的一個(gè)管理方針。如果每個(gè)單元都進(jìn)行單元測試則測試代碼的規(guī)模和產(chǎn)品代碼的規(guī)模能夠達(dá)到1:1,也就是說編寫測試代碼的工作量還是比較大的,但是也要看到單元測試的產(chǎn)出。在單元測試、集成測試、系統(tǒng)測試中,單元測試是投入產(chǎn)出比最大的測試種類,即單元測試在單位時(shí)間內(nèi)發(fā)現(xiàn)的缺陷個(gè)數(shù)大于集成與系統(tǒng)測試。原則上單元測試的投入最大,找到的缺陷最多,集成測試與系統(tǒng)測試依次遞減。
            5、在實(shí)踐中推廣單元測試時(shí)可以采用如下的方法:
            (1) 加大靜態(tài)檢查的力度。通過靜態(tài)檢查的工具快速地識別程序中的錯(cuò)誤、警告、壞味道,公司可以規(guī)定對檢查出的哪些警告、壞味道必須進(jìn)行修改,注意如果修改所有的警告、壞味道可能工作量比較大。靜態(tài)檢查是一種投入產(chǎn)出比很高的單元測試方法。在JAVA下可以采用check Style, Source monitor,PMD,F(xiàn)ind Bugs,Jslink等。
            (2) 通過測試策略的選擇減少測試程序的工作量。單元測試一般有三種策略:
            策略一:自底向上的策略:先測底層的函數(shù)或類,再測上層的函數(shù)或類,此時(shí)只需要編寫驅(qū)動(dòng)程序,不需要編寫樁程序。
            策略二:自頂向下的策略:先測上層的函數(shù)或類,再測試底層的函數(shù)類,此時(shí)只需要編寫樁程序,不需要或很少需要編寫驅(qū)動(dòng)程序。
            策略三:混合策略:綜合上述的2種策略,需要綜合編寫樁程序與驅(qū)動(dòng)程序。
            如果被測的單元需要調(diào)用很多其他的單元,則可以采用自底向上的策略減少驅(qū)動(dòng)程序的編寫量。如果被測的單元需要很多外圍的環(huán)境準(zhǔn)備則可以采用自頂向下的策略。
            (3) 在組織級可以規(guī)定執(zhí)行單元測試的時(shí)機(jī),比如:
            i)系統(tǒng)中最核心的、最關(guān)鍵的功能模塊;
            ii)算法復(fù)雜的功能模塊;
            iii)出錯(cuò)最多的功能模塊;
            iv)客戶最常使用的功能模塊;
            v)復(fù)用的底層代碼
            根據(jù)Pareto定律,我們可以選擇少部分代碼執(zhí)行單元測試。
            6、單元測試的技術(shù)
            (1) XUnit的工具
            (2) 生成測試用例時(shí)可以采用如下的方法:
            i)單元功能分析
            ii)入口參數(shù)等價(jià)類分析
            iii)入口參數(shù)邊界分析
            iv)全程變量、共享數(shù)據(jù)的等價(jià)類與邊界分析
            v)調(diào)用函數(shù)返回值的等價(jià)類與邊界分析
            vi)覆蓋率分析
            上述的方法要求的嚴(yán)格程度可以循序漸進(jìn),不能的嚴(yán)格程度需要投入的工作量不同。

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

          AppScan8.0使用過程中問題記錄

          一、AppScan安裝時(shí)出現(xiàn)錯(cuò)誤1603。
            是因?yàn)橹鞍惭b過,沒有卸載干凈導(dǎo)致報(bào)錯(cuò)。解決方法如下:
            1、控制面板→程序和功能→選中程序卸載。
            2、刪除AppScan安裝路徑以及下面的所有內(nèi)容。
            3、在系統(tǒng)[開始]->[運(yùn)行(R)...]中,運(yùn)行命令regedit來刪除全部注冊鍵(如果存在的話),以及下列的子 鍵:
            A.HKEY_LOCAL_MACHINE\SOFTWARE\IBM\ Rational AppScan
            B.HKEY_CURRENT_USER\Software\IBM\ Rational AppScan
            4、刪除Windows TEMP文件夾下面的所有內(nèi)容:
            A.點(diǎn)擊系統(tǒng)[開始]->[運(yùn)行(R)...],輸入 %temp%并運(yùn)行
            B.當(dāng)文件夾打開后,選擇菜單[編輯]->[全部選定(A)],在選定文件的任何部分右擊鼠標(biāo)并選擇[刪除
            (D)](跳過當(dāng)前可能還在使用的文件,盡可能的刪除所有可以刪除的文件)
            5、同樣打開APPSCAN_TEMP文件夾:
            A.打開后刪除里面所有的內(nèi)容
            B.如果發(fā)生下面的錯(cuò)誤,忽略該錯(cuò)誤開始下一步操作
            %APPSCAN_TEMP%
            Windows cannot find '%APPSCAN_TEMP%'. Make sure you typed the name
            correctly, and then try again. To search for a file, slick the Start
            button, and then click Search.
            6、使用Windows自帶的磁盤清理設(shè)置來清理您的電腦:
            A.在系統(tǒng)[開始]->[運(yùn)行(R)...]中,輸入命令: cleanmgr/sageset,選擇"臨時(shí)安裝文件","安裝日志
            文件","臨時(shí)文件"并取消其他項(xiàng)目的勾選(這樣工具的配置已經(jīng)完成)。
            B.在系統(tǒng)[開始]->[運(yùn)行(R)...]中,輸入命令: cleanmgr/sagerun(這樣就啟動(dòng)了清除功能,一般需 要幾分鐘才能完成)。
            7、重新啟動(dòng)電腦。
            二、AppScan掃描后篡改網(wǎng)站代碼。
            在掃描配置→測試策略→勾選了侵入式,有可能會篡改掉網(wǎng)站的代碼。如果會篡改的話在掃描的時(shí)候去掉這個(gè)勾選即可。(不過這個(gè)就呵呵了,要從代碼上放置被侵入攻擊)
            三、AppScan掃描過程中C盤空間不足。
            1、建議不要勾選啟用掃描日志,當(dāng)掃描網(wǎng)站過大或掃描時(shí)間過長,隨著日志文件變大會導(dǎo)致系統(tǒng)崩潰。如果已經(jīng)勾選了,可以在工具→選項(xiàng)→啟用掃描日志勾選去掉即可。
            2、如果要勾選的話,可以把用戶文件保存到其它硬盤。默認(rèn)的用戶文件是:C:\Documents and Settings\Administrator\My Documents\AppScan;可以修改為其他路徑。該路徑可以在菜單欄中依次選擇工具→選項(xiàng)→一般→文件位置部分修改。
            3、如果已經(jīng)把上面的地址都修改到了其他盤,但是在掃描過程中還是發(fā)現(xiàn)C 盤的空間快速被消耗,是因?yàn)楹芏嗯R時(shí)文件都保存在C 盤,AppScan 中有一個(gè)隱藏的參數(shù)APPSCAN_TEMP 來設(shè)置臨時(shí)文件位置。可以通過修改系統(tǒng)變量來修改到其他硬盤空間。臨時(shí)文件位置說明:描述正常操作期間AppScan 將其臨時(shí)文件保存到的位置。缺省情況下,AppScan 將其臨時(shí)文件存儲在以下位置:C:\Documents and Settings\All Users\Application Data\IBM\Rational AppScan\temp如果需要修改此缺省位置,請按照要求編輯環(huán)境變量APPSCAN_TEMP 的路徑。
            訪問環(huán)境變量的方法是:右鍵單擊我的電腦,然后依次選擇屬性→高級→環(huán)境變量。
            注意:在新位置的路徑中絕不能有任何Unicode字符。
            修改AppScan 中的臨時(shí)文件:桌面上鼠標(biāo)右鍵選擇我的電腦→屬性→高級系統(tǒng)設(shè)置→高級→環(huán)境變量,增加一個(gè)新的“用戶環(huán)境變量”,名字是“APPSCAN_TEMP”,設(shè)定路徑,指向您希望保存臨時(shí)文件的目錄。
            4、還可以始終暫停掃描稍后再啟動(dòng),當(dāng)然有了前面的方法我想也不需要這樣了。
           四、AppScan掃描時(shí)虛擬內(nèi)存不足。
            1、一個(gè)小時(shí)保存一次,以免出現(xiàn)故障的時(shí)候之前掃描的結(jié)果白費(fèi)了;在工具→選項(xiàng)→掃描過程中自動(dòng)保存設(shè)置為60分鐘自動(dòng)保存一次。
            
            2、可以在工具→選項(xiàng)→高級搜索PerformanceMonitor.RestartOnOutOfMemory把屬性值改為true。使Rational AppScan當(dāng)內(nèi)存使用量相對過大時(shí)自動(dòng)重新啟動(dòng)。 這樣當(dāng)掃描因?yàn)槭S嗟奶摂M內(nèi)存量過低從而被迫停止時(shí),Rational AppScan會監(jiān)測系統(tǒng)注冊表的設(shè)定來決定是否重新啟動(dòng)。
            
            五、AppScan掃描時(shí)出現(xiàn)通信問題。
            1、減小線程數(shù),掃描配置→通信和代理。
            2、加大超時(shí)數(shù),掃描配置→通信和代理。
            
            3、服務(wù)器有防火墻,防火墻關(guān)閉之后即可掃描。
            六、AppScan打開文件時(shí)提示“文件出現(xiàn)損壞”。
            1、先試試這個(gè)、可能是因?yàn)镮ssch和ISUSPM自啟動(dòng)項(xiàng)被禁用了。運(yùn)行“msconfig”看下,如果禁用狀態(tài),開啟為開機(jī)啟動(dòng)即可。
            七、AppScan整個(gè)掃描流程簡述。
            AppScan 使用步驟:計(jì)劃、執(zhí)行、檢查、分析。
            1、在計(jì)劃階段(plan):明確目的,進(jìn)行策略性的選擇和任務(wù)分解
            A、明確目的:選擇合適的掃描策略
            B、了解對象:首先進(jìn)行探索,了解網(wǎng)站結(jié)構(gòu)和規(guī)模
            C、確定策略:進(jìn)行對應(yīng)的配置
            D、按照目錄進(jìn)行掃描任務(wù)的分解
            E、按照掃描策略進(jìn)行掃描任務(wù)的分解
            2、執(zhí)行階段(Do):一邊掃描一遍觀察
            A、先爬后掃(繼續(xù)僅測試)
            3、檢查階段(Check)
            A、檢查和調(diào)整配置(過程中可能會產(chǎn)生一些問題)
            4、結(jié)果分析(Analysis)
            A、對比結(jié)果
            B、匯總結(jié)果(整合和過濾)
            Ps.一般掃描的時(shí)候選擇綜合掃描會掃描的全面些。
            八、修改后驗(yàn)證。
            1、右擊需要驗(yàn)證的問題,點(diǎn)擊重新測試,如果修復(fù)了的話,此問題會消失掉。
            
            2、對于HTML注釋敏感信息泄露驗(yàn)證不掉的問題,可以點(diǎn)擊具體問題然后查看請求/響應(yīng)點(diǎn)擊下一行突出顯示看具體問題,然后在網(wǎng)站相應(yīng)頁面前臺中查看是否已去掉此注釋。
            

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

          淺談第三方電子支付平臺測試方法的研究

          第三方支付平臺的功能和結(jié)構(gòu)特點(diǎn)
            在信用方面,第三方支付平臺作為中介,在網(wǎng)上交易的商家和消費(fèi)者之間作一個(gè)信用的中轉(zhuǎn),通過改造支付流程來約束雙方的行為,從而在一定程度上緩解彼此對雙方信用的猜疑,增加對網(wǎng)上購物的可信度。
            在技術(shù)層面,第三方支付平臺承擔(dān)安全保障和技術(shù)支持的作用,提供一系列的應(yīng)用接口程序,支持多家銀行的多卡種支付,將多家簽約銀行的支付方式整 合到一個(gè)界面上,負(fù)責(zé)交易結(jié)算中心與銀行的對接。銀行與商家通過接入第三方支付平臺實(shí)現(xiàn)二次結(jié)算,并采用國際先進(jìn)SSL加密模式,在銀行、消費(fèi)者和商家之 間傳輸和存儲資料。第三方支付服務(wù)商所提供的支付系統(tǒng)能夠承載很大的數(shù)據(jù)量、吞吐率,并具有極高的支付成功率。同時(shí)還可以根據(jù)不同用戶的需要,對界面、功 能等進(jìn)行調(diào)整,增加個(gè)性化和人性化的特征。
            目前國內(nèi)出現(xiàn)了數(shù)百個(gè)第三方支付平臺,這些平臺的業(yè)務(wù)模式和技術(shù)實(shí)現(xiàn)方法不盡相同,但平臺的結(jié)構(gòu)則具有一個(gè)相似的基本點(diǎn),即第三方支付平臺前端直接面對網(wǎng)上客戶,平臺的后端連接各家商業(yè)銀行,或通過人民銀行的相關(guān)支付系統(tǒng)連接各家商業(yè)銀行。
            第三方支付平臺業(yè)務(wù)流分析
            根據(jù)電子支付產(chǎn)業(yè)鏈的分析我們看到,第三方支付最初的支付模式只是作為銀行和網(wǎng)上商戶的中介,這就是第三方支付“一般模式”;隨著支付業(yè)務(wù)的發(fā)展,小商戶和網(wǎng)民之間的信用風(fēng)險(xiǎn)導(dǎo)致了“提供擔(dān)保”的支付模式。
            第三方支付一般模式的流程:在中國,消費(fèi)者通過第三方網(wǎng)上支付平臺進(jìn)行支付一般必須涉及到發(fā)卡銀行(網(wǎng)銀)、網(wǎng)上商戶和第三方網(wǎng)上支付平臺。一個(gè)典型的消費(fèi)交易,通過第三方網(wǎng)上支付平臺支付的流程圖如下:
            
          第三方支付一般模式流程說明
            一般支付流程如下:
            a)網(wǎng)上消費(fèi)者瀏覽檢索商戶網(wǎng)頁,并在商戶網(wǎng)站選擇商品、下訂單;
            b)商戶網(wǎng)站列出可以選擇的支付網(wǎng)關(guān),消費(fèi)者選擇其一,商戶網(wǎng)站將連接到第三方支付網(wǎng)關(guān)的支付頁面;
            c)網(wǎng)上消費(fèi)者在第三方支付平臺的支付頁面,選擇相應(yīng)的銀行、卡種;
            d)第三方支付平臺將網(wǎng)上消費(fèi)者的支付信息,按照各銀行支付網(wǎng)關(guān)的技術(shù)要求,傳遞到各相關(guān)銀行,進(jìn)入銀行支付頁面;
            e)銀行(銀聯(lián))提供輸入卡號、金額、密碼等關(guān)鍵信息的安全頁面;網(wǎng)上銀行轉(zhuǎn)發(fā)給銀行賬務(wù)系統(tǒng),由相關(guān)銀行(銀聯(lián))檢查相應(yīng)賬戶(網(wǎng)上消費(fèi)者)的支付能力,實(shí)行凍結(jié)、扣賬或劃賬,并將賬務(wù)系統(tǒng)的處理結(jié)果返回給網(wǎng)上消費(fèi)者本身和第三方支付平臺;
            f)第三方支付平臺將支付結(jié)果轉(zhuǎn)發(fā)給網(wǎng)上商戶;
            g)網(wǎng)上商戶確認(rèn)收到成功支付應(yīng)答的,向網(wǎng)上消費(fèi)者發(fā)貨或提供服務(wù);
            h)第三方平臺根據(jù)協(xié)議于第二天或約定的周期向商戶支付扣除手續(xù)費(fèi)后的資金;第三方平臺為網(wǎng)上商戶提供差錯(cuò)交易處理的服務(wù);
            i)第三方平臺作為商戶與網(wǎng)上銀行對帳,核對資金、核對;第三方平臺代表網(wǎng)上商戶與網(wǎng)上銀行處理差錯(cuò)交易。
            從整個(gè)過程上來看,多家銀行和簽約商家通過支付網(wǎng)關(guān)連成通道,消費(fèi)者通過第三方支付平臺付款給商家,通過第三方支付為商家提供一個(gè)可以兼容多銀行支方式的接口平臺。
            第三方支付擔(dān)保模式的流程:第三方支付擔(dān)保模式,也稱為信用中介型模式。該種運(yùn)營模式,基本是由大型的電子交易平臺獨(dú)立開發(fā)或與其他投資人共同 開發(fā),憑借運(yùn)營商的實(shí)力和信譽(yù)與各大銀行合作,同時(shí)能夠?yàn)橘I賣雙方提供中間擔(dān)保的第三方支付運(yùn)營模式。這種模式的運(yùn)營商主要是借助電子交易平臺和中間擔(dān)保 支付平臺與用戶開展業(yè)務(wù),在交易過中采用充當(dāng)信用中介的模式,保證交易的正常進(jìn)行。
          以支付寶模式流程為例,其具體運(yùn)行流程是:
            支付寶模式流程說明
            以支付寶支付模式為例,其具體運(yùn)行流程是:
            a)買家確定購買之后從支付寶的個(gè)人賬戶中劃撥出來,保留在支付寶監(jiān)管賬戶中;事先用戶應(yīng)當(dāng)保證賬戶中有足夠的資金;如果余額不足,支付寶會自動(dòng)跳轉(zhuǎn)到充值頁面,讓客戶通過網(wǎng)銀充值;
            b)支付寶扣賬成功后,通知賣家發(fā)貨;
            c)賣家通過其配送渠道向買家發(fā)貨;
            d)待買方收到商品并確認(rèn)無誤后,通知支付寶收到貨物;
            e)支付寶將監(jiān)管賬戶中資金劃撥到賣家在支付寶的賬戶中。
            支付寶作為代收代付的中介,主要是為了維護(hù)網(wǎng)絡(luò)交易的安全性。
            在網(wǎng)上交易中, 客戶在商家網(wǎng)站下訂單后,先把貨款付給大家都信任的第三方中介機(jī)構(gòu),在商家知道貨款己到第三方中介機(jī)構(gòu)后把貨物發(fā)送給客戶。如果客戶對貨物滿意,貨款就通過第三方中介機(jī)構(gòu)付給商家;如果不滿意,客戶把貨物返回給商家,并從第三方中介機(jī)構(gòu)處取回貨款。
            第三方支付平臺測試方法
            從上述的兩種支付流程來看,作為網(wǎng)絡(luò)交易的主要支付渠道,第三方網(wǎng)上支付平臺在發(fā)卡銀行、網(wǎng)上商戶間提供了接口平臺,在電子支付產(chǎn)業(yè)鏈中起到重 要的中介作用。面對這樣的電子化信息系統(tǒng)及其網(wǎng)絡(luò)交易中可能存在的風(fēng)險(xiǎn),我們不得不實(shí)時(shí)地關(guān)注:第三方支付業(yè)務(wù)的流程是否能夠正確實(shí)現(xiàn)、功能是否正確、網(wǎng) 上大量客戶的并發(fā)交易會不會導(dǎo)致支付系統(tǒng)崩潰、支付系統(tǒng)的不穩(wěn)定或者互聯(lián)網(wǎng)誠信體系的不健全會不會影響網(wǎng)上購物和交易等等問題。
            目前亟待解決的問題就集中在;如何通過有效地方法和策略以驗(yàn)證第三方支付系統(tǒng)的功能是否正確實(shí)現(xiàn),是否會造成網(wǎng)絡(luò)擁堵及如何通過現(xiàn)有的網(wǎng)絡(luò)技術(shù) 如Internet Web、數(shù)據(jù)加密、防火墻技術(shù)、各種交易協(xié)議、客戶端瀏覽技術(shù)和軟件等,使得客戶和商家能透明安全地進(jìn)行交易等。因此,為了防范第三方支付系統(tǒng)的交易風(fēng) 險(xiǎn),保障系統(tǒng)的穩(wěn)定運(yùn)行,必須考慮采取強(qiáng)有力的措施加以管理和控制,積極地引入軟件測試,強(qiáng)化系統(tǒng)質(zhì)量測試和安全評估,為網(wǎng)絡(luò)交易支付系統(tǒng)提供可靠地服務(wù) 保證。
            根據(jù)支付系統(tǒng)的業(yè)務(wù)流程和發(fā)展需要,下面從系統(tǒng)的測試重點(diǎn)出發(fā),主要討論第三方支付系統(tǒng)的功能、性能及安全性的測試方法。
            功能測試方法
            在對第三方支付平臺實(shí)施測試過程中,應(yīng)采用黑盒測試策略,使用等價(jià)類劃分、邊界值分析、因果圖法、判定表法、正交試驗(yàn)法、功能圖法等測試用例設(shè) 計(jì)方法的原理與實(shí)現(xiàn),分別對第三方支付系統(tǒng)的功能、第三方賬戶和交易風(fēng)險(xiǎn)監(jiān)控、系統(tǒng)性能及安全性等測試指標(biāo)項(xiàng)進(jìn)行測試。黑盒測試法應(yīng)制訂覆蓋全部功能模塊 的測試用例,通過執(zhí)行測試用例以實(shí)現(xiàn)系統(tǒng)功能、業(yè)務(wù)流程和其它質(zhì)量特性的測試。
            針對第三方支付平臺的業(yè)務(wù)功能,如“會員管理、賬戶管理、中間賬戶資金管理、差錯(cuò)處理、資金結(jié)算、對賬處理、統(tǒng)計(jì)報(bào)表”等等,應(yīng)綜合應(yīng)用各類測 試設(shè)計(jì)方法:首先對業(yè)務(wù)流程進(jìn)行等價(jià)類劃分,設(shè)計(jì)的測試用例應(yīng)是業(yè)務(wù)主流程和流程主分支的最小集,所有的判別分支都能被覆蓋,在流程覆蓋的同時(shí),完成等價(jià) 功能的測試;采用邊界值分析法,針對功能說明中的輸入輸出域,進(jìn)行邊界值和極限值的設(shè)計(jì)和測試;采用逆向思維方式,結(jié)合以往測試經(jīng)驗(yàn)和直覺設(shè)計(jì)軟件在功能 和流程上可能存在的各種錯(cuò)誤,靠經(jīng)驗(yàn)用錯(cuò)誤推測法追加一些測試用例,進(jìn)行容錯(cuò)性測試;針對程序功能說明有各種輸入條件組合的,用因果圖和判定表驅(qū)動(dòng)法進(jìn)行 測試;參數(shù)配置類的情況,用正交試驗(yàn)法選擇較少組合方式達(dá)到最佳效果;功能圖法通過不同時(shí)期條件的有效性設(shè)計(jì)數(shù)據(jù);對于業(yè)務(wù)清晰且復(fù)雜的系統(tǒng)利用場景法貫 穿整個(gè)測試過程。
           

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

          Linux亂碼和數(shù)據(jù)庫亂碼的問題簡單排查

           在本地的虛擬機(jī)環(huán)境一直湊合著用英文,今天想看看中文的東西都顯示亂碼,下定決心要把問題解決了。
            如果直接打印文本內(nèi)容,通過putty也會顯示亂碼。
            [ora11g@rac1 ~]$ cat aa.sh
            δ? ε??ο?θ?ζ―δ?δ??ζ?θ―
            [ora11g@rac1 ~]$
            這個(gè)時(shí)候很可能是putty的編碼轉(zhuǎn)換的問題,通過查看putty的設(shè)置,如上,可以看到應(yīng)該選為utf-8。
            選為UTF-8以后,重新打印,就沒有問題了。
            [ora11g@rac1 ~]$ cat aa.sh
            你好,這是一個(gè)測試
            第一個(gè)問題解決了,第二個(gè)問題又來了,來看看數(shù)據(jù)庫層面的亂碼問題。
            [ora11g@rac1 ~]$ sqlplus n1/n1
            SQL> select *from test;
            ID NAME
            ---------- -----------------------------
            1 ??????
            這個(gè)時(shí)候看看環(huán)境變量NLS_LANG的設(shè)置,如果為空,很可能會出問題。
            [ora11g@rac1 ~]$ echo $NLS_LANG
            [ora11g@rac1 ~]$
            簡單設(shè)置一下,這個(gè)最好和數(shù)據(jù)庫層面的字符集要一致。
            [ora11g@rac1 ~]$ echo $NLS_LANG
            american_america.AL32UTF8
            再來查看一下,就沒有問題了。
            SQL> select *from test;
            ID NAME
            ---------- -----------------------------
            1 突破玩法界限
            當(dāng)然了,我的這個(gè)問題剛好數(shù)據(jù)庫層面是完全支持的,這樣就省去了很多額外的工作,如果數(shù)據(jù)庫層面的字符集不支持,那很可能就得重建庫來改變字符集了。
          select *from nls_database_parameters
          SQL> /
          PARAMETER                      VALUE
          ------------------------------ ----------------------------------------
          NLS_LANGUAGE                   AMERICAN
          NLS_TERRITORY                  AMERICA
          NLS_CURRENCY                   $
          NLS_ISO_CURRENCY               AMERICA
          NLS_NUMERIC_CHARACTERS         .,
          NLS_CHARACTERSET               AL32UTF8
          NLS_CALENDAR                   GREGORIAN
          NLS_DATE_FORMAT                DD-MON-RR
          NLS_DATE_LANGUAGE              AMERICAN
          NLS_SORT                       BINARY
          NLS_TIME_FORMAT                HH.MI.SSXFF AM
          NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
          NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
          NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
          NLS_DUAL_CURRENCY              $
          NLS_COMP                       BINARY
          NLS_LENGTH_SEMANTICS           BYTE
          NLS_NCHAR_CONV_EXCP            FALSE
          NLS_NCHAR_CHARACTERSET         AL16UTF16
          NLS_RDBMS_VERSION              11.2.0.3.0
          另外系統(tǒng)層面的亂碼,網(wǎng)上查看了一下,有些人建議修改/etc/sysconfig/i18n的設(shè)置。
            [ora11g@rac1 ~]$ cat /etc/sysconfig/i18*
            LANG="en_US.UTF-8"
            SYSFONT="latarcyrheb-sun16"
            如果修改為中文的,一定要注意設(shè)置的值,在我本地做測試,是不需要修改的,本身就支持,我修改的時(shí)候,竟然改錯(cuò)了,結(jié)果重新登錄及報(bào)了一大堆的錯(cuò)誤,如下:
            [ora11g@rac1 caipiao]$ su - ora11g
            Password:
            -bash: warning: setlocale: LC_CTYPE: cannot change locale (zn_CN.UTF-8): No such file or directory
            -bash: warning: setlocale: LC_COLLATE: cannot change locale (zn_CN.UTF-8): No such file or directory
            -bash: warning: setlocale: LC_MESSAGES: cannot change locale (zn_CN.UTF-8): No such file or directory
            -bash: warning: setlocale: LC_NUMERIC: cannot change locale (zn_CN.UTF-8): No such file or directory
            -bash: warning: setlocale: LC_TIME: cannot change locale (zn_CN.UTF-8): No such file or directory
            如果修改,應(yīng)該改為zh_CN,算是一個(gè)低級錯(cuò)誤。

          posted @ 2014-09-04 09:51 順其自然EVO 閱讀(186) | 評論 (0)編輯 收藏

          嵌入式數(shù)據(jù)庫事務(wù)理解以及實(shí)例操作

          SQLite 事務(wù)(Transaction)
            事務(wù)(Transaction)是一個(gè)對數(shù)據(jù)庫執(zhí)行工作單元。事務(wù)(Transaction)是以邏輯順序完成的工作單位或序列,可以是由用戶手動(dòng)操作完成,也可以是由某種數(shù)據(jù)庫程序自動(dòng)完成。
            事務(wù)(Transaction)是指一個(gè)或多個(gè)更改數(shù)據(jù)庫的擴(kuò)展。例如,如果您正在創(chuàng)建一個(gè)記錄或者更新一個(gè)記錄或者從表中刪除一個(gè)記錄,那么您正在該表上執(zhí)行事務(wù)。重要的是要控制事務(wù)以確保數(shù)據(jù)的完整性和處理數(shù)據(jù)庫錯(cuò)誤。
            實(shí)際上,您可以把許多的 SQLite 查詢聯(lián)合成一組,把所有這些放在一起作為事務(wù)的一部分進(jìn)行執(zhí)行。
            1,事務(wù)的屬性
            事務(wù)(Transaction)具有以下四個(gè)標(biāo)準(zhǔn)屬性,通常根據(jù)首字母縮寫為 ACID:
            ·原子性(Atomicity):確保工作單位內(nèi)的所有操作都成功完成,否則,事務(wù)會在出現(xiàn)故障時(shí)終止,之前的操作也會回滾到以前的狀態(tài)。
            ·一致性(Consistency):確保數(shù)據(jù)庫在成功提交的事務(wù)上正確地改變狀態(tài)。
            ·隔離性(Isolation):使事務(wù)操作相互獨(dú)立和透明。
            ·持久性(Durability):確保已提交事務(wù)的結(jié)果或效果在系統(tǒng)發(fā)生故障的情況下仍然存在。
            2,事務(wù)控制
            使用下面的命令來控制事務(wù):
            ·BEGIN TRANSACTION:開始事務(wù)處理。
            ·COMMIT:保存更改,或者可以使用 END TRANSACTION 命令。
            ·ROLLBACK:回滾所做的更改。
            事務(wù)控制命令只與 DML 命令 INSERT、UPDATE 和 DELETE 一起使用。他們不能在創(chuàng)建表或刪除表時(shí)使用,因?yàn)檫@些操作在數(shù)據(jù)庫中是自動(dòng)提交的。
            3,BEGIN TRANSACTION 命令
            事務(wù)(Transaction)可以使用 BEGIN TRANSACTION 命令或簡單的 BEGIN 命令來啟動(dòng)。此類事務(wù)通常會持續(xù)執(zhí)行下去,直到遇到下一個(gè) COMMIT 或 ROLLBACK 命令。不過在數(shù)據(jù)庫關(guān)閉或發(fā)生錯(cuò)誤時(shí),事務(wù)處理也會回滾。以下是啟動(dòng)一個(gè)事務(wù)的簡單語法:
            BEGIN;
            or
            BEGIN TRANSACTION;
            4,COMMIT 命令
            COMMIT 命令是用于把事務(wù)調(diào)用的更改保存到數(shù)據(jù)庫中的事務(wù)命令。
            COMMIT 命令把自上次 COMMIT 或 ROLLBACK 命令以來的所有事務(wù)保存到數(shù)據(jù)庫。
            COMMIT 命令的語法如下:
            COMMIT;
            or
            END TRANSACTION;
            5,ROLLBACK 命令
            ROLLBACK 命令是用于撤消尚未保存到數(shù)據(jù)庫的事務(wù)的事務(wù)命令。
            ROLLBACK 命令只能用于撤銷自上次發(fā)出 COMMIT 或 ROLLBACK 命令以來的事務(wù)。
            ROLLBACK 命令的語法如下:
            ROLLBACK;
            6,實(shí)例操作
            [root@localhost sqlite-autoconf-3080403]# sqlite3 tim.db
            SQLite version 3.8.4.3 2014-04-03 16:53:12
            Enter ".help" for usage hints.
            sqlite> CREATE TABLE COMPANY(ID INT NOT NULL, NAME VARCHAR(20),AGE INT,ADDRESS VARCHAR(20),SALARY DECIMAL(7,2));
            現(xiàn)在,讓我們開始一個(gè)事務(wù),并從表中刪除 age = 25 的記錄,最后,我們使用 ROLLBACK 命令撤消所有的更改。
            先開啟事務(wù),然后刪除AGE為25的記錄,查詢COMPANY表,會看到?jīng)]有這條記錄,如下圖所示:
            再ROLLBACK,再去查詢COMPANY表,會看到AGE為25的記錄被恢復(fù)。
            現(xiàn)在開啟一個(gè)事務(wù),刪除AGE為25的記錄,再執(zhí)行COMMIT提交所以的更改,那么就不會再看到已經(jīng)刪除的記錄,如下所示:
            再ROLLBACK,再去查詢COMPANY表,會看到AGE為25的記錄被恢復(fù)。
            現(xiàn)在開啟一個(gè)事務(wù),刪除AGE為25的記錄,再執(zhí)行COMMIT提交所以的更改,那么就不會再看到已經(jīng)刪除的記錄,如下所示:

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

          質(zhì)量管理的誤區(qū)—質(zhì)量認(rèn)證

          現(xiàn)在常有人“把質(zhì)量第一”的所謂時(shí)髦詞語掛在嘴邊,左一個(gè)認(rèn)證,右一個(gè)活動(dòng),仿佛告訴你企業(yè)重視質(zhì)量的決心,已經(jīng)擺在最優(yōu)先的項(xiàng)目上了。有個(gè)笑話 是:企業(yè)在生產(chǎn)現(xiàn)場的產(chǎn)品質(zhì)量無人把關(guān),看不到管理者,就問上哪了,回答,都去聽“質(zhì)量在我心中”的演講去了。而我并不認(rèn)為質(zhì)量是一個(gè)優(yōu)先項(xiàng)目,而且要特 別說明的是,我不認(rèn)為質(zhì)量是一個(gè)值得經(jīng)常考慮的項(xiàng)目。
            如果把質(zhì)量當(dāng)作一個(gè)方案或特別的系統(tǒng)來驅(qū)使的話,則很容易因?yàn)橥ㄟ^與其它商業(yè)活動(dòng)的優(yōu)先程度比較而導(dǎo)致錯(cuò)位。這就像在關(guān)系里給予愛以優(yōu)先權(quán)一樣。而愛,并不是一個(gè)與其它活動(dòng)相競爭的項(xiàng)目,它需要把時(shí)間傾注在全部的關(guān)系中。
            質(zhì)量不是項(xiàng)目,質(zhì)量就是符合要求。我們何時(shí)才符合要求呢?我們每一次的業(yè)務(wù)活動(dòng)都是為某些人獲得輸出。故而,優(yōu)先性應(yīng)給予工作業(yè)務(wù),或它的輸 出,或那些輸出的使用者。如果某人是位有誠信的人,符合要求(或做你答應(yīng)要做的事),也就因此成為人們做任何工作時(shí)想要得到的東西,無論怎樣都應(yīng)該是優(yōu)先 的。
            質(zhì)量是從現(xiàn)場中來的,沒有深入到現(xiàn)場去,你永遠(yuǎn)不可能管理好你的質(zhì)量,當(dāng)然這里的現(xiàn)場是廣義的包括銷售現(xiàn)場、設(shè)計(jì)現(xiàn)場、生產(chǎn)現(xiàn)場等等。很多朋友 都談到了質(zhì)量認(rèn)證和質(zhì)量活動(dòng),我想不管什么樣的措施或管理方法,只要確實(shí)能提高產(chǎn)品品質(zhì),能持續(xù)改進(jìn)質(zhì)量水平,那么不管是什么方法什么體系什么活動(dòng)我都認(rèn) 可,反之我都堅(jiān)決反對。
            時(shí)下咨詢行業(yè)有這樣一句行話:“你又搞跨了幾家公司”,這是一個(gè)現(xiàn)象,當(dāng)然并不是說咨詢師不行,是因?yàn)樗麄儧]有深入到現(xiàn)場去,不能有針對性的開 展輔助工作,亂開處方,有的企業(yè)也是“病急亂投醫(yī)”認(rèn)為咨詢公司或策劃公司能幫他們解決實(shí)質(zhì)性管理問題,當(dāng)然部分好的咨詢師或策劃人的確是能幫助企業(yè)的, 但是象某些書本咨詢師或書本策劃人我是不敢茍同。
            企業(yè)要發(fā)展練好內(nèi)功是關(guān)鍵,不管是品質(zhì)管理還是其他管理更多的還是依賴于企業(yè)自身的管理水平和執(zhí)行水平,因此所有的企業(yè)經(jīng)營活動(dòng)或管理方法體系都要踏踏實(shí)實(shí)的去做,而不是說的,企業(yè)是做出來的,不是說出來的也不是想出來的。

          posted @ 2014-09-04 09:47 順其自然EVO 閱讀(194) | 評論 (0)編輯 收藏

          Java實(shí)現(xiàn)將一個(gè)正整數(shù)分解質(zhì)因數(shù)

          * 題目:將一個(gè)正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。
            * 分析:對n進(jìn)行分解質(zhì)因數(shù),應(yīng)先找到一個(gè)最小的質(zhì)數(shù)k,然后按下述步驟完成:
            *(1)如果這個(gè)質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束,打印出即可。
            *(2)如果n>k,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復(fù)執(zhí)行第一步。
            *(3)如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步。
            *這個(gè)題目很明顯是要用遞歸算法來實(shí)現(xiàn)的,打印“*”有些技巧,但也很容易解決,程序如下:
          import java.util.Scanner;
          public class Yinshifenjie {
          public static void fenjie(int n) {
          for (int i=2;i <=n;i++) {
          if (i == n) {
          System.out.print(i);
          return;
          }
          if (n > i && (n % i == 0)) {
          System.out.print(i+"*");
          fenjie(n / i);
          break;
          }
          }
          }
          public static void main(String[] args) {
          Scanner input = new Scanner(System.in);
          System.out.println("請輸入一個(gè)整數(shù):");
          int n = input.nextInt();
          fenjie(n);
          }
          }

          posted @ 2014-09-04 09:47 順其自然EVO 閱讀(232) | 評論 (0)編輯 收藏

          VBS腳本啟動(dòng)QTP并運(yùn)行測試

           使用vbs腳本啟動(dòng)QTP并運(yùn)行測試,startQTP.vbs
          '************************************************************************************************************************
          'Description:
          '
          'This example opens a test, configures run options and settings,
          'runs the test, and then checks the results of the test run.
          '
          'Assumptions:
          'There is no unsaved test currently open in QuickTest.
          'For more information, see the example for the Test.SaveAs method.
          'When QuickTest opens, it loads the add-ins required for the test.
          'For more information, see the example for the Test.GetAssociatedAddins method.
          '************************************************************************************************************************
          Dim qtApp 'As QuickTest.Application ' Declare the Application object variable
          Dim qtTest 'As QuickTest.Test ' Declare a Test object variable
          Dim qtResultsOpt 'As QuickTest.RunResultsOptions ' Declare a Run Results Options object variable
          Set qtApp = CreateObject("QuickTest.Application") ' Create the Application object
          qtApp.Launch ' Start QuickTest
          qtApp.Visible = False ' Make the QuickTest application visible
          ' Set QuickTest run options
          qtApp.Options.Run.ImageCaptureForTestResults = "OnError"
          qtApp.Options.Run.RunMode = "Fast"
          qtApp.Options.Run.ViewResults = False
          qtApp.Open "D:\NewTest\Scripts\BeforeGlobal\Login", False ' Open the test in read-only mode
          ' set run settings for the test
          Set qtTest = qtApp.Test
          qtTest.Settings.Run.IterationMode = "oneIteration"  ' Runs the test only once, using only the first row in the global Data Table
          'qtTest.Settings.Run.IterationMode = "rngIterations" ' Run only iterations 2 to 4
          'qtTest.Settings.Run.StartIteration = 2
          'qtTest.Settings.Run.EndIteration = 4
          qtTest.Settings.Run.OnError = "NextStep" ' Instruct QuickTest to perform next step when error occurs
          qtApp.Test.Settings.Web.BrowserNavigationTimeout = 60000 ' Configure other Web settings
          Set qtResultsOpt = CreateObject("QuickTest.RunResultsOptions") ' Create the Run Results Options object
          qtResultsOpt.ResultsLocation = "D:\NewTest\Res1" ' Set the results location
          qtTest.Run qtResultsOpt ' Run the test
          'MsgBox qtTest.LastRunResults.Status ' Check the results of the test run
          qtTest.Close ' Close the test
          qtApp.Quit 'Close the QTP
          Set qtResultsOpt = Nothing ' Release the Run Results Options object
          Set qtTest = Nothing ' Release the Test object
          Set qtApp = Nothing ' Release the Application object

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

          僅列出標(biāo)題
          共394頁: First 上一頁 52 53 54 55 56 57 58 59 60 下一頁 Last 
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 东安县| 沙河市| 峨眉山市| 郓城县| 恩施市| 山西省| 巍山| 塔河县| 黄龙县| 吉首市| 桃园市| 厦门市| 开远市| 辽阳县| 江北区| 新干县| 临湘市| 汉寿县| 广水市| 大丰市| 逊克县| 泰来县| 安新县| 边坝县| 罗源县| 临沧市| 阜南县| 金沙县| 肥东县| 白河县| 夏邑县| 肃北| 深圳市| 朝阳市| 广宁县| 金阳县| 灵武市| 大余县| 耒阳市| 定安县| 广安市|