qileilove

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

          QTP書寫程序技巧

           一、添加固定注釋
            新建一TXT文檔,將要添加的注釋寫在文檔中
            將文檔名改為:ActionTemplate.mst
            將文件放到QTP安裝目錄的dat文件夾中
            設(shè)置好后,在QTP中每次新建一個(gè)測(cè)試就會(huì)自動(dòng)添加固定的注釋
            二、調(diào)用外部vbs文件方法
            1.將通用函數(shù)寫在一個(gè)vbs文件中,以供其他腳本調(diào)用
            2.調(diào)用外部VBS文件中的通用函數(shù)的方法(二選一即可),設(shè)置完后在QTP中直接使用函數(shù)名進(jìn)行調(diào)用:
            1)通過(guò)在QTP中設(shè)置:file-->settings-->Resource-->“添加VBS文件的路徑“
            2)在腳本中使用Executefile語(yǔ)句:Executefile "VBS文件路徑"

          posted @ 2014-08-14 09:23 順其自然EVO 閱讀(183) | 評(píng)論 (0)編輯 收藏

          從敏捷工程實(shí)踐中獲益的五種途徑

          創(chuàng)造有用的軟件是門工藝。這是沒有非黑即白的成功公式的。但是,卻有一些敏捷工程實(shí)踐,實(shí)踐證明它已經(jīng)屢次為企業(yè)增加了價(jià)值,但前提是要考慮周全之后再使用。在本文中,我將與大家分享5條具體的途徑,你的企業(yè)能夠通過(guò)這些途徑從敏捷工程實(shí)踐中獲益。
            (假設(shè)我們使用Scrum + 極限編程(XP)= 敏捷這條基本公式,那么在我講敏捷工程實(shí)踐時(shí)就會(huì)談到公式中與XP相關(guān)的那一部分,比如測(cè)試驅(qū)動(dòng)開發(fā)、結(jié)對(duì)編程和持續(xù)集成。)
            James Shore在一篇精辟的博客中說(shuō):
            “與XP(極限編程)相比,Scrum更加簡(jiǎn)單,對(duì)原有工作幾乎也產(chǎn)生不了多大的影響,所以我看到很多人是從Scrum開始入手的。但其中的問(wèn)題是,從Scrum開始入手的團(tuán)隊(duì)比從XP開始的團(tuán)隊(duì)多得太多了。XP團(tuán)隊(duì)在開始時(shí)會(huì)經(jīng)歷更多的痛苦,但在第一年就會(huì)達(dá)到高效的狀態(tài)。”
            我不僅同意他所說(shuō)的,而且也親眼見過(guò)很多次這樣的情況。XP很難。它難在需要嚴(yán)格的紀(jì)律,另外,它的好處雖多卻有時(shí)難以立桿見影。
            我的父親是一名牙科醫(yī)生。他有一次告訴我說(shuō)“找一位好的牙科醫(yī)生是很難的。牙醫(yī)能補(bǔ)牙或者殺死牙神經(jīng),但你5年內(nèi)不會(huì)知道他做得好不好,因?yàn)槟阈枰欢螘r(shí)間之后才知道他補(bǔ)得到底好不好。”XP與之非常類似。
            我清楚最好的軟件開發(fā)人員(而且知道上千名)在高壓環(huán)境下是最遵守紀(jì)律的。
            許多開發(fā)人員體驗(yàn)了敏捷/Scrum/精益/XP的做法。但是,嚴(yán)格的截止日期臨近時(shí),或者團(tuán)隊(duì)已經(jīng)拖期時(shí),再或者公司要求團(tuán)隊(duì)“快速完成”時(shí),他們還能維持多高的紀(jì)律水平呢?
            There are many XP practices. The most valuable ones for a business are:
            現(xiàn)在有很多XP實(shí)踐,其中對(duì)商業(yè)而言最有價(jià)值的是:
            測(cè)試驅(qū)動(dòng)開發(fā)—TDD是你的商業(yè)安全網(wǎng)。因?yàn)闇y(cè)試是在編碼之前完成的,所以寫完的測(cè)試一定會(huì)運(yùn)行失敗,接下來(lái)再寫代碼使測(cè)試可以通過(guò)。TDD保證你的產(chǎn)品功能,不管公司和技術(shù)團(tuán)隊(duì)實(shí)現(xiàn)的是大規(guī)模的變更還是小規(guī)模的變更。
            結(jié)對(duì)編程—讓2名開發(fā)人員寫同一段代碼,使用同一個(gè)鍵盤和同一臺(tái)顯示器。因?yàn)榻Y(jié)對(duì)大大降低了浪費(fèi)的時(shí)間和缺陷,所以能帶來(lái)更高質(zhì)量的代碼,并帶來(lái)高水平的協(xié)作。
            集體代碼所有制和持續(xù)集成—如果每段代碼不只有一個(gè)人熟悉,那么就不會(huì)有什么交流瓶頸了。把代碼持續(xù)集成到一個(gè)主干可以避免重復(fù)和不匹配的代碼。
            重構(gòu)—在當(dāng)時(shí)的情況下,寫的代碼是解決已知問(wèn)題的。通常,團(tuán)隊(duì)巧妙地解決了他們的問(wèn)題,然后持續(xù)重構(gòu)和修改代碼,確保代碼庫(kù)能以最為高效的方式不斷滿足業(yè)務(wù)最新的需要。
            然而給定的XP很難,它需要連續(xù)的訓(xùn)練和一定的時(shí)間保證才能做得好,高管們要的是速度。技術(shù)總監(jiān)們、副總裁們、首席執(zhí)行官們說(shuō)“我希望我的工程團(tuán)隊(duì)獲得更好的敏捷工程實(shí)踐效果,使我們變得更快。”
            最初,我同意 James Shore所說(shuō)的,XP的確很難,實(shí)際上它違反了敏捷幫助團(tuán)隊(duì)更快的理念。事實(shí)上,XP有陡峭的學(xué)習(xí)曲線,而且很自然的是,這需要一定的學(xué)習(xí)時(shí)間,學(xué)習(xí)XP的團(tuán)隊(duì)肯定比什么都不學(xué)的團(tuán)隊(duì)更慢。
            所以,如果“更快”不是敏捷工程實(shí)踐真正的價(jià)值,那么什么才是它真正的價(jià)值呢?
            我認(rèn)為,敏捷工程實(shí)踐真正的價(jià)值是,它們讓公司以某種方式擁抱變化,事實(shí)上,這將成為一種競(jìng)爭(zhēng)優(yōu)勢(shì)。
            為什么呢?
            當(dāng)我們進(jìn)入2014年,這個(gè)論點(diǎn)將在邏輯上成為合理的。如果現(xiàn)實(shí)果真如此,那么以此推理,在接下來(lái)的十年間,那些充分利用軟件構(gòu)建流程的公司將走向成功。
            是的,這個(gè)道理大家都懂,有很多競(jìng)爭(zhēng)優(yōu)勢(shì)是軟件之外的。例如,那些能夠充分利用數(shù)學(xué)工式去預(yù)測(cè)未來(lái)股票的對(duì)沖基金將擁有競(jìng)爭(zhēng)優(yōu)勢(shì)。那些能夠充分利用布藝和顏色去預(yù)測(cè)未來(lái)時(shí)尚的零售商店將擁有競(jìng)爭(zhēng)優(yōu)勢(shì)。但是,隨著7乘24小時(shí)的網(wǎng)絡(luò)連接和全球信息共享,你剛想到一個(gè)好點(diǎn)子,你的競(jìng)爭(zhēng)對(duì)手就將會(huì)去模仿它了。
            這讓我們兜了一圈又回到剛才的觀念,那些能夠充分利用軟件構(gòu)建流程的公司將超過(guò)他們的競(jìng)爭(zhēng)對(duì)手,擁有巨大的競(jìng)爭(zhēng)優(yōu)勢(shì)。這個(gè)概念的關(guān)鍵詞是“流程”。它是技術(shù)棧無(wú)關(guān)的。從敏捷工程實(shí)踐中充分獲益的關(guān)鍵是,出現(xiàn)危機(jī)的時(shí)候仍能極力地堅(jiān)持最起碼的流程原則。這就像是鍛煉身體。假設(shè)你休假的時(shí)候每周鍛煉五次,上班的時(shí)候每周鍛煉一次,那么實(shí)際上你每周只會(huì)鍛煉一次。如果離截止日期還遠(yuǎn)的時(shí)候才實(shí)踐結(jié)對(duì)和TDD,一旦要到截止日期了就把敏捷拋到一邊,那就說(shuō)明你并沒有勤奮地實(shí)踐敏捷流程。
          能夠讓企業(yè)通過(guò)使用敏捷工程實(shí)踐獲益的五種具體方法是:
            1.可以隨機(jī)應(yīng)變的靈活性
            我的公司為大型零售商創(chuàng)建了一個(gè)電子商務(wù)平臺(tái)。在六個(gè)月的開發(fā)周期中,前三個(gè)月團(tuán)隊(duì)具有自主權(quán)。我們兩周一個(gè)迭代,并且每?jī)芍馨l(fā)布一次代碼。某天,產(chǎn)品團(tuán)隊(duì)做競(jìng)爭(zhēng)情報(bào)研究時(shí)發(fā)現(xiàn),一個(gè)競(jìng)爭(zhēng)對(duì)手針對(duì)退貨修改了他們銷售和信用卡的處理方式。因?yàn)槲覀兺瓿傻拇a上個(gè)迭代已經(jīng)充分測(cè)試了,并和其他代碼集成好了,而且已經(jīng)發(fā)到生產(chǎn)環(huán)境中了,所以我們清楚自己的代碼非常可靠,即使變更也不會(huì)有任何宕機(jī)或缺陷之類的重大風(fēng)險(xiǎn)。
            第二天,我們決定不再繼續(xù)既定的構(gòu)建,而是開了個(gè)需求收集會(huì),估算多久能完成新的特性,并對(duì)用戶故事重新排序。數(shù)天之內(nèi),我們就把一組新特性確定好范圍,排好優(yōu)先級(jí),由團(tuán)隊(duì)優(yōu)先來(lái)完成這些任務(wù)。兩周之后,修改后的信用卡退貨引擎就發(fā)布到生產(chǎn)環(huán)境中了。沒發(fā)現(xiàn)任何缺陷,銷售團(tuán)隊(duì)對(duì)此非常滿意。
            這完全得益于包括測(cè)試驅(qū)動(dòng)開發(fā)在內(nèi)的敏捷工程實(shí)踐,公司清楚他們能夠依靠技術(shù)團(tuán)隊(duì)快速應(yīng)變,盡可能地降低在線品牌展示質(zhì)量的風(fēng)險(xiǎn),從而始終保持著市場(chǎng)的競(jìng)爭(zhēng)力。
            2.可以實(shí)時(shí)地重新分配開發(fā)團(tuán)隊(duì)的成員
            如果要達(dá)到這種隨機(jī)應(yīng)變的靈活性,在兩周內(nèi)就發(fā)布新的信用卡退貨引擎,那么團(tuán)隊(duì)在本迭代只為這個(gè)特性上安排兩名工程師就不太夠了,實(shí)際需要四名。由于團(tuán)隊(duì)采用了結(jié)對(duì)編程和集體代碼所有權(quán)的緣故,所以團(tuán)隊(duì)中的成員熟悉每一段代碼,我們可以隨便拉一對(duì)已經(jīng)完成其他故事的程序員去完成這個(gè)新的優(yōu)先級(jí)更高的故事,當(dāng)我們重新排定的優(yōu)先級(jí)之后仍能維持原有的速率。
            使用敏捷工程,項(xiàng)目不會(huì)因?yàn)槟硞€(gè)搖滾巨星無(wú)法從其他事情中分身而阻礙了進(jìn)程。整個(gè)團(tuán)隊(duì)可以轉(zhuǎn)向新的需求。為新功能配備的最佳配置可以專心去完成新功能。團(tuán)隊(duì)處在一個(gè)不斷交流的氛圍中,所以為一個(gè)故事增加更多的工程師會(huì)很順利,不會(huì)產(chǎn)生任何混亂。
            3.自然而然地避免了去廢棄持續(xù)了幾個(gè)月的工作
            經(jīng)過(guò)充分測(cè)試再發(fā)布生產(chǎn)環(huán)境的代碼還有另外一個(gè)好處,一旦完成就不會(huì)被廢棄。當(dāng)我們確認(rèn)需要完成信用卡退貨特性時(shí),就可以把工作重心直接轉(zhuǎn)到這個(gè)優(yōu)先級(jí)更高的新特性上。在這個(gè)過(guò)程中不需要廢棄任何工作。在我們要開始這項(xiàng)新工作之前,沒有必須要完成或推遲的半成品。已完成的所有代碼都是高質(zhì)量的、無(wú)缺陷的、完整的和有效的。
            4.堅(jiān)信已完成的特性永遠(yuǎn)代表著項(xiàng)目最重要的那部分
            幾年前,我的團(tuán)隊(duì)為一個(gè)大型政府機(jī)關(guān)項(xiàng)目做一個(gè)項(xiàng)目。這個(gè)項(xiàng)目是個(gè)長(zhǎng)期合作,我們編碼就用了一年。因?yàn)槲覀兪褂昧嗣艚莨こ虒?shí)踐,所以代碼會(huì)被持續(xù)發(fā)布到生產(chǎn)環(huán)境中。
            在某一天的早晨,一位干系人對(duì)這個(gè)項(xiàng)目的優(yōu)先級(jí)有了一些新的想法。他擔(dān)心因此可能會(huì)使其他重要功能無(wú)法完成了。他不熟悉每天的項(xiàng)目進(jìn)度,也沒有意識(shí)到敏捷的商業(yè)價(jià)值。
            所幸,工程團(tuán)隊(duì)實(shí)際上是緊貼業(yè)務(wù)開展工作的,每?jī)芍馨礃I(yè)務(wù)的優(yōu)先級(jí)完成他們的工作,在過(guò)去的一年中,最重要的特性已經(jīng)完成了、已經(jīng)完全集成在一起了、已經(jīng)充分測(cè)試了,它們的質(zhì)量堅(jiān)若磐石。
            公司堅(jiān)信在任何時(shí)間點(diǎn)完成的都是最重要的特性。干系人可以放心軟件的任何變更,不但多大都可能,而且都可以欣然接受且風(fēng)險(xiǎn)很低。
            5. 能營(yíng)銷活動(dòng)策劃充滿信心
            我們都曾經(jīng)經(jīng)歷過(guò)這樣的事,公司策劃一場(chǎng)營(yíng)銷活動(dòng)。我經(jīng)常和團(tuán)隊(duì)在一起工作,他們需要在確定的日期內(nèi)完成軟件的編碼。去年,我負(fù)責(zé)一個(gè)教育服務(wù)性企業(yè)的項(xiàng)目。一場(chǎng)營(yíng)銷活動(dòng)已經(jīng)全面鋪開。我們有一個(gè)明確的期限:返校日期。他們希望返校期間能產(chǎn)生巨大的銷售額,所以這些特性必須在八月十號(hào)之前上線。由于日期是固定的,這場(chǎng)營(yíng)銷在電視、報(bào)刊和在線廣告上也花費(fèi)了大量的費(fèi)用,電子商務(wù)網(wǎng)站必須在規(guī)定的日期內(nèi)具備最必要的特性。
            通常接下來(lái)會(huì)發(fā)生什么事呢?我看到無(wú)數(shù)的工程團(tuán)隊(duì)最終會(huì)處于一種左右為難的境地。八月一號(hào)那天,產(chǎn)品經(jīng)理意識(shí)到無(wú)法滿足時(shí)間要求,如果想讓產(chǎn)品如期上線,工程團(tuán)隊(duì)就要在接下來(lái)的兩周里每周拼命地干100小時(shí)的活。但是,如果團(tuán)隊(duì)的工作強(qiáng)度如此之大,就會(huì)把人搞得非常地疲勞和焦慮,這樣就很容易出現(xiàn)工作上的失誤。
            如果團(tuán)隊(duì)能夠設(shè)法做到嚴(yán)守敏捷原則,繼續(xù)依靠工程最佳實(shí)踐,那么測(cè)試驅(qū)動(dòng)開發(fā)、持續(xù)集成、結(jié)對(duì)編程和其他方法將引導(dǎo)團(tuán)隊(duì)準(zhǔn)時(shí)地發(fā)布并靈活地安排休息時(shí)間。
            團(tuán)隊(duì)只需這么做。我們?cè)诟邏簳r(shí)堅(jiān)守敏捷原則,并握緊手里的槍。使用敏捷能為營(yíng)銷活動(dòng)帶來(lái)信心,其關(guān)鍵就是堅(jiān)信這樣的一個(gè)事實(shí),其實(shí)許多特性可以有多種實(shí)現(xiàn)方式。例如,假設(shè)有一個(gè)特性是要把視頻上傳到你的網(wǎng)站上,那么至少有兩種實(shí)現(xiàn)方式。方案A:花10天時(shí)間開發(fā),使用戶可以上傳任何語(yǔ)言、任何格式和任何長(zhǎng)度的視頻文件。方案B:花1天時(shí)間開發(fā),讓用戶可以把YouTube的鏈接粘到一個(gè)輸入框里。
            你怎么選擇我不得而知,但如果我是產(chǎn)品經(jīng)理,而且時(shí)間已經(jīng)到八月一號(hào)了,那我肯定會(huì)選擇方案B。
            最終的結(jié)果是,我們?cè)诎嗽率?hào)成功地發(fā)布了產(chǎn)品,它包含了所有的關(guān)鍵特性。我們有意欠下了大量的技術(shù)債,包括選擇用一天的時(shí)間完成視頻上傳的特性。八月十號(hào)一帆風(fēng)順,之后我們把新特性和之前欠下的技術(shù)債重新排定了優(yōu)先級(jí)。我們把技術(shù)債和新特性一起放到故事列表中重新排序,快速恢復(fù)到了兩周一個(gè)迭代的平穩(wěn)工作效率中。
            概括起來(lái)說(shuō),敏捷工程實(shí)踐的價(jià)值已經(jīng)超越了工程團(tuán)隊(duì),對(duì)整個(gè)企業(yè)的好處是顯而易見的。持續(xù)運(yùn)用高效開發(fā)過(guò)程的公司將帶著巨大的優(yōu)勢(shì)同我們一起走進(jìn)下個(gè)十年。讓你的團(tuán)隊(duì)以最適合的方式去實(shí)現(xiàn)敏捷工程實(shí)踐吧,如果你有任何問(wèn)題都可以向我提問(wèn),我會(huì)非常樂(lè)意地與你一起一邊喝喝咖啡、喝喝啤酒一邊詳細(xì)地交流討論的。
            關(guān)于作者
            Debbie Madden是一位經(jīng)驗(yàn)豐富的管理人員、戰(zhàn)略顧問(wèn)和接口人。目前,她是 Stride的首席執(zhí)行官,為高管和企業(yè)家們提供戰(zhàn)略建議和一些首席驚喜官的咨詢。Debbie信奉以人為本。她的生活和工作都堅(jiān)守著熱情、誠(chéng)實(shí)、勇敢、公平的基本原則。她專門為技術(shù)、專業(yè)服務(wù)和初創(chuàng)公司提供指導(dǎo)和咨詢。Debbie堅(jiān)信,在接下來(lái)的十年軟件構(gòu)建流程將成為公司的巨大優(yōu)勢(shì)。敏捷和初創(chuàng)引發(fā)了她的思考。她相信,迭代、協(xié)作的方法會(huì)把權(quán)力授予團(tuán)隊(duì),個(gè)人愛好與商業(yè)優(yōu)先級(jí)將保持一致。已經(jīng)過(guò)去的十年,Debbie一直在經(jīng)營(yíng)Cyrus Innovation。最近,她已經(jīng)成為Cyrus的首席執(zhí)行官,把這家公司從一無(wú)所有發(fā)展到了規(guī)模達(dá)60人、價(jià)值數(shù)百萬(wàn)美元、五次獲得Inc5000強(qiáng)增長(zhǎng)最快的私營(yíng)企業(yè)稱號(hào),并被Crain評(píng)為紐約最好的工作場(chǎng)所。

          posted @ 2014-08-14 09:22 順其自然EVO 閱讀(167) | 評(píng)論 (0)編輯 收藏

          談?wù)勑阅軠y(cè)試分類

           網(wǎng)上查閱了很多資料,關(guān)于性能測(cè)試的分類也眾說(shuō)紛蕓。談?wù)勛约簩?duì)性能測(cè)試分類的理解。
            性能測(cè)試是通過(guò)自動(dòng)化的測(cè)試工具模擬多種正常、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試。負(fù)載測(cè)試和壓力測(cè)試都屬于性能測(cè)試,兩者可以結(jié)合進(jìn)行。通過(guò)負(fù)載測(cè)試,確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測(cè)試當(dāng)負(fù)載逐漸增加時(shí),系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況。壓力測(cè)試是通過(guò)確定一個(gè)系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),來(lái)獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試。
            驗(yàn)收性能測(cè)試(狹義)   性能測(cè)試方法是通過(guò)模擬生產(chǎn)運(yùn)行的業(yè)務(wù)壓力量和使用場(chǎng)景組合,測(cè)試系統(tǒng)的性能是否滿足生產(chǎn)性能要求。通俗地說(shuō),這種方法就是要在特定的運(yùn)行條件下驗(yàn)證系統(tǒng)的能力狀態(tài)。
            特點(diǎn): 1、這種方法的主要目的是驗(yàn)證系統(tǒng)是否有系統(tǒng)宣稱具有的能力。 2、這種方法要事先了解被測(cè)試系統(tǒng)經(jīng)典場(chǎng)景,并具有確定的性能目標(biāo)。 3、這種方法要求在已經(jīng)確定的環(huán)境下運(yùn)行。 也就是說(shuō),這種方法是對(duì)系統(tǒng)性能已經(jīng)有了解的前提,并對(duì)需求有明確的目標(biāo),并在已經(jīng)確定的環(huán)境下進(jìn)行的。
            負(fù)載測(cè)試(Load Test)通過(guò)在被測(cè)系統(tǒng)上不斷加壓,直到性能指標(biāo)達(dá)到極限(例如“響應(yīng)時(shí)間”)超過(guò)預(yù)定指標(biāo)或都某種資源已經(jīng)達(dá)到飽和狀態(tài)。
            特點(diǎn): 1、這種性能測(cè)試方法的主要目的是找到系統(tǒng)處理能力的極限。 2、這種性能測(cè)試方法需要在給定的測(cè)試環(huán)境下進(jìn)行,通常也需要考慮被測(cè)試系統(tǒng)的業(yè)務(wù)壓力量和典型場(chǎng)景、使得測(cè)試結(jié)果具有業(yè)務(wù)上的意義。 3、這種性能測(cè)試方法一般用來(lái)了解系統(tǒng)的性能容量,或是配合性能調(diào)優(yōu)來(lái)使用。 也就是說(shuō),這種方法是對(duì)一個(gè)系統(tǒng)持續(xù)不段的加壓,看你在什么時(shí)候已經(jīng)超出“我的要求”或系統(tǒng)崩潰。
            壓力測(cè)試(強(qiáng)度測(cè)試)(Stress Test)壓力測(cè)試方法測(cè)試系統(tǒng)在一定飽和狀態(tài)下,例如cpu、內(nèi)存在飽和使用情況下,系統(tǒng)能夠處理的會(huì)話能力,以及系統(tǒng)是否會(huì)出現(xiàn)錯(cuò)誤
            特點(diǎn): 1、這種性能測(cè)試方法的主要目的是檢查系統(tǒng)處于壓力性能下時(shí)應(yīng)用的表現(xiàn)。 2、這種性能測(cè)試一般通過(guò)模擬負(fù)載等方法,使得系統(tǒng)的資源使用達(dá)到較高的水平。 3、這種性能測(cè)試方法一般用于測(cè)試系統(tǒng)的穩(wěn)定性。 也就是說(shuō),這種測(cè)試是讓系統(tǒng)處在很大強(qiáng)度的壓力之下,看系統(tǒng)是否穩(wěn)定,哪里會(huì)出問(wèn)題。
            并發(fā)測(cè)試(Concurrency Testing)并發(fā)測(cè)試方法通過(guò)模擬用戶并發(fā)訪問(wèn),測(cè)試多用戶并發(fā)訪問(wèn)同一個(gè)應(yīng)用、同一個(gè)模塊或者數(shù)據(jù)記錄時(shí)是否存在死鎖或其者他性能問(wèn)題。
            特點(diǎn): 1、這種性能測(cè)試方法的主要目的是發(fā)現(xiàn)系統(tǒng)中可能隱藏的并發(fā)訪問(wèn)時(shí)的問(wèn)題。 2、這種性能測(cè)試方法主要關(guān)注系統(tǒng)可能存在的并發(fā)問(wèn)題,例如系統(tǒng)中的內(nèi)存泄漏、線程鎖和資源爭(zhēng)用方面的問(wèn)題。 3、這種性能測(cè)試方法可以在開發(fā)的各個(gè)階段使用需要相關(guān)的測(cè)試工具的配合和支持。 也就是說(shuō),這種測(cè)試關(guān)注點(diǎn)是多個(gè)用戶同時(shí)(并發(fā))對(duì)一個(gè)模塊或操作進(jìn)行加壓。
            配置測(cè)試(Configuration Testing)配置測(cè)試方法通過(guò)對(duì)被測(cè)系統(tǒng)的軟\硬件環(huán)境的調(diào)整,了解各種不同對(duì)系統(tǒng)的性能影響的程度,從而找到系統(tǒng)各項(xiàng)資源的最優(yōu)分配原則。
            特點(diǎn): 1、這種性能測(cè)試方法的主要目的是了解各種不同因素對(duì)系統(tǒng)性能影響的程度,從而判斷出最值得進(jìn)行的調(diào)優(yōu)操作。 2、這種性能測(cè)試方法一般在對(duì)系統(tǒng)性能狀況有初步了解后進(jìn)行。 3、這種性能測(cè)試方法一般用于性能調(diào)優(yōu)和規(guī)劃能力。 也就是說(shuō),這種測(cè)試關(guān)注點(diǎn)是“微調(diào)”,通過(guò)對(duì)軟硬件的不段調(diào)整,找出這他們的最佳狀態(tài),使系統(tǒng)達(dá)到一個(gè)最強(qiáng)的狀態(tài)。
            可靠性測(cè)試通過(guò)給系統(tǒng)加載一定業(yè)務(wù)壓力(例如資源在70%-90%的使用率),使系統(tǒng)運(yùn)行一段時(shí)間,以此檢測(cè)系統(tǒng)是否穩(wěn)定運(yùn)行。
            特點(diǎn): 1、這種性能測(cè)試方法的主要目的是驗(yàn)證是否支持長(zhǎng)期穩(wěn)定的運(yùn)行。 2、這種性能測(cè)試方法需要在壓力下持續(xù)一段時(shí)間的運(yùn)行。(2~3天) 3、測(cè)試過(guò)程中需要關(guān)注系統(tǒng)的運(yùn)行狀況。 如果測(cè)試過(guò)程中發(fā)現(xiàn),隨著時(shí)間的推移,響應(yīng)時(shí)間有明顯的變化,或是系統(tǒng)資源使用率有明顯波動(dòng),都可能是系統(tǒng)不穩(wěn)定的征兆。 也就是說(shuō),這種測(cè)試的關(guān)注點(diǎn)是“穩(wěn)定”,不需要給系統(tǒng)太大的壓力,只要系統(tǒng)能夠長(zhǎng)期處于一個(gè)穩(wěn)定的狀態(tài)。
            失效恢復(fù)測(cè)試如果系統(tǒng)局部發(fā)生故障,用戶是否能夠繼續(xù)使用系統(tǒng),以及如果這種情況發(fā)生,用戶將受到多大程度的影響。
            特點(diǎn): 1.這種性能測(cè)試方法的主要目的是驗(yàn)證在局部故障情況下,系統(tǒng)能否繼續(xù)使用。 2.這種性能測(cè)試方法還需要指出,當(dāng)問(wèn)題發(fā)生時(shí),“能支持多少用戶訪問(wèn)”的結(jié)論和“采取何種應(yīng)急措施”的方案。 3.一般來(lái)說(shuō),只有對(duì)系統(tǒng)持續(xù)運(yùn)行指標(biāo)有明確要求的系統(tǒng)才需要進(jìn)行這種類型的測(cè)試。
            大數(shù)據(jù)量測(cè)試針對(duì)某些系統(tǒng)存儲(chǔ)、傳輸、統(tǒng)計(jì)查詢等業(yè)務(wù)進(jìn)行大數(shù)據(jù)量的測(cè)試。
            疲勞強(qiáng)度測(cè)試主要特點(diǎn)是長(zhǎng)時(shí)間對(duì)目標(biāo)測(cè)試系統(tǒng)加壓,目的是測(cè)試系統(tǒng)的穩(wěn)定性,持續(xù)時(shí)間一般在1小時(shí)以上;感覺等同于可靠性測(cè)試。
            注意:在做性能測(cè)試時(shí)請(qǐng)忘掉分類.例如,運(yùn)行8個(gè)小時(shí)來(lái)測(cè)試系統(tǒng)是否可靠,而這個(gè)測(cè)試極有可能包含了可靠性能測(cè)、強(qiáng)度測(cè)試、并發(fā)測(cè)試、負(fù)載測(cè)試,等等。因此,在實(shí)施性能測(cè)試時(shí)決不能割裂它們的內(nèi)部聯(lián)系去進(jìn)行,而應(yīng)該分析它們之間的關(guān)系,以一種高效率的方式來(lái)設(shè)計(jì)性能測(cè)試。

          posted @ 2014-08-14 09:16 順其自然EVO 閱讀(656) | 評(píng)論 (0)編輯 收藏

          http://blog.csdn.net/bonlog/article/details/9289371

          tomcat7默認(rèn)是將用戶是注釋的,配置文件在根目錄下/conf/tomcat-users.xml文件,進(jìn)入tomcat目錄下的conf中的tomcat-users.xml:

          配置默認(rèn)如下:

          <!--
            <role rolename="tomcat"/>
            <role rolename="role1"/>
            <user username="tomcat" password="tomcat" roles="tomcat"/>
            <user username="both" password="tomcat" roles="tomcat,role1"/>
            <user username="role1" password="tomcat" roles="role1"/>
          -->

          可以不用管注釋里的內(nèi)容,在下面添加

          增加以下語(yǔ)句

          <role rolename="admin-gui"/>
          <role rolename="admin-script"/>
          <role rolename="manager-gui"/>
          <role rolename="manager-script"/>
          <role rolename="manager-jmx"/>
          <role rolename="manager-status"/>
          <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>

          保存后啟動(dòng)tomcat,輸入用戶名:tomcat,密碼:tomcat

          訪問(wèn)地址:http://localhost:8080/manager/html

          ____________________________________________

          幾點(diǎn)說(shuō)明:

          1.undeploy 刪除的文件 :刪除后,將不可恢復(fù)。

          2.expire sessions   idle[空閑]]

          posted @ 2014-08-13 17:00 順其自然EVO 閱讀(224) | 評(píng)論 (0)編輯 收藏

          配置Linux服務(wù)10步搞定

           檢查基本條件,物理連接,server端、client端都連接了交換機(jī)或路由
            1、配置IP地址、DNS等
            # nmtui
            # service network restart        # ifconfig | grep -A1 flags
            # cat /etc/resolv.conf
            2、配置主機(jī)名主機(jī)名
            立即生效
            # hostname lz.com
            永久生效
            # echo lz.com> /etc/hostname
            配置hosts文件
            # echo 192.168.220.111   lz.com>> /etc/hosts
            查看驗(yàn)證
            # hostname
            # cat /etc/hostname
            # cat /etc/hosts
            3、查看服務(wù)包是否安裝
            # rpm -q pkg
            4、安裝服務(wù)包使用rpm或者yum源
            # rpm -ivh /media/Packages/pkg*
            # yum -y install pkg
            5、修改配置文件
            查找配置文件
            # rpm -qc pkg
            修改配置文件
            # vim /path/filename
            6、重啟服務(wù)
            # service daemon restart
            7、設(shè)置開機(jī)自動(dòng)啟動(dòng)
            # chkconfig daemon on
            8、配置防火墻
            # firewall-cmd --permanent --add-service=*
            # firewall-cmd --permanent --add-port=*/[tcp|udp]
            # service firewalld restart        # firewall-cmd --list-services
            9、如果需要調(diào)整selinux
            # setenfore 0
            # set -i '/^SELINUX/s/=.*/=permissive/' /etc/selinux/config
            10、測(cè)試驗(yàn)證
            a、本地測(cè)試
            b、網(wǎng)絡(luò)測(cè)試

          posted @ 2014-08-13 10:26 順其自然EVO 閱讀(192) | 評(píng)論 (0)編輯 收藏

          使用SQL Profile進(jìn)行SQL優(yōu)化案例

               摘要: 一個(gè)社保系統(tǒng)的自助查詢系統(tǒng)查詢個(gè)人醫(yī)療費(fèi)用明細(xì)的查詢語(yǔ)句要用一分多鐘還沒查詢出來(lái),語(yǔ)句如下:  select * from  v_zzzd_ylbx_ylfymxcx where aac002='430703198202280017'  從上面的語(yǔ)句可知是從視圖 v_zzzd_ylbx_ylfymxcx中查詢數(shù)據(jù)。v_zzzd_ylbx_ylfymxcx視圖的創(chuàng)建語(yǔ)句如下:create ...  閱讀全文

          posted @ 2014-08-13 10:25 順其自然EVO 閱讀(433) | 評(píng)論 (0)編輯 收藏

          Appscan安全漏洞掃描使用

           這里主要分享如何使用AppScan對(duì)一大項(xiàng)目的部分功能進(jìn)行安全掃描。
            ------------------------------------------------------------------------
            其實(shí),對(duì)于安全方面的測(cè)試知道的甚少。因?yàn)槟枪久總€(gè)月要求對(duì)產(chǎn)品進(jìn)行安全掃描。掌握了一人點(diǎn)使用技巧,所以拿來(lái)與大家分享。
            因?yàn)楫a(chǎn)品比較大,功能模塊也非常之多,我們不可能對(duì)整個(gè)產(chǎn)品進(jìn)行掃描。再一個(gè)每個(gè)測(cè)試員負(fù)責(zé)測(cè)試的模塊不同。我們只需要對(duì)自己負(fù)責(zé)測(cè)試的模塊掃描即可。
            掃描工具自然是IBM AppScan  ,功能強(qiáng)大,使用簡(jiǎn)單。略懂安全測(cè)試的都使用或聽說(shuō)過(guò)這個(gè)工具。這里就不過(guò)多介紹了。
            抽取被掃描功能的鏈接
            首先要抽取掃描的鏈接。fiddler工具來(lái)抽取。打開系統(tǒng),找到你需要做掃描的功能模塊,開啟fiddler攔截功能,然后對(duì)你所要測(cè)試的功能做各種操作,fiddler就會(huì)記錄的所有訪問(wèn)的鏈接,因?yàn)樯婕暗诫[私,所以下圖會(huì)比較模糊。
            其實(shí),請(qǐng)求中有非常多的鏈接,但許多是一樣,我們只要把不一樣的全找出來(lái)就可以了。這里你需要知道每個(gè)連接的情況。也有一些外部鏈接是不需要抽取的。
          aaa.bbb.cn
          g2.aaa.bbb.cn
          g1.aaa.bbb.cn
          webapp.aaa.bbb.cn
          uec.aaa.bbb.cn
          addrapi.aaa.bbb.cn
          smsrebuild1.aaa.bbb.cn
          disk2.aaa.bbb.cn
          mw.aaa.bbb.cn
          scriptlog.aaa.bbb.cn
          images.139cm.com
          appmail.aaa.bbb.cn
          gfile5-disk.aaa.bbb.cn
          gfile8-disk.aaa.bbb.cn
          gfile7-disk.aaa.bbb.cn
            把所有鏈接抽取出來(lái)之后就沒幾個(gè)了。去掉重復(fù)的就沒多少了。
            完成配置向?qū)?/div>
            下面打開appscan創(chuàng)建掃描。
            選擇常規(guī)掃描,進(jìn)入配置向?qū)А|c(diǎn)擊下一步,進(jìn)入配置
            上面這一步是重點(diǎn),起始URL填寫你要掃描的網(wǎng)址。其它服務(wù)器和域:這里把抽取的所有鏈接都添加進(jìn)去。包括后網(wǎng)站的首頁(yè)鏈接。點(diǎn)擊下一步。
            這里提供三種方式來(lái)記錄帳號(hào),不多介紹。第一種和第三種最常用。
            然后點(diǎn)擊幾個(gè)下一步后出現(xiàn)后面的選項(xiàng),選擇第三個(gè)或第四項(xiàng)完成掃描的配置。

           錄制掃描腳本
            完成配置后,下面就要開始錄制腳本了呢。
            點(diǎn)擊工具欄上的探索按鈕,appscan會(huì)打開自帶瀏覽器,輸入系統(tǒng)用戶名密碼登錄系統(tǒng),對(duì)你要掃描的模塊功能進(jìn)行操作。
            上圖為我打開的appscan自帶瀏覽器(因?yàn)槲逸斎氲木W(wǎng)址有誤,所以無(wú)法訪問(wèn))。操作完成之后,點(diǎn)擊暫停按鈕,關(guān)閉瀏覽器窗口即可。
            關(guān)閉瀏覽器后,上面的窗口中會(huì)記錄所有你訪問(wèn)的連接,點(diǎn)擊確定。所有的信息就會(huì)記錄下來(lái)了,下面要做的點(diǎn)擊點(diǎn)擊工具欄上的掃描按鈕開始掃描。我們一般晚上下班進(jìn)行,第二天早上來(lái)看掃描結(jié)果就可以了。
            ------------------------------------
            本來(lái)到這里就可以結(jié)束了,我再多說(shuō)個(gè)設(shè)置。呵呵!在手動(dòng)探索的時(shí)候,因?yàn)榇蜷_的瀏覽器是appscan自帶的,可能會(huì)存在兼容性問(wèn)題,有些頁(yè)面無(wú)法正常打開。那么是否可以用我們電腦上的瀏覽器(IE 、火狐、谷歌)來(lái)進(jìn)行錄制呢了。當(dāng)然是可以的。
            菜單欄--工具---選項(xiàng)----高級(jí)
            這個(gè)一定要大圖,我們只需要修改openExternalBrowser 選項(xiàng)“值”的參數(shù)就可以了(1=IE、2=firefox、3=chrome)。
            安全測(cè)試挺有前途的,國(guó)內(nèi)起步很晚,這兩年才逐漸受到重視。公司也越來(lái)越重視安全。

          posted @ 2014-08-13 09:59 順其自然EVO 閱讀(1174) | 評(píng)論 (0)編輯 收藏

          JAVA JDK和Tomcat環(huán)境變量配置

           CLASSPATH是什么?它的作用是什么?
            它是javac編譯器的一個(gè)環(huán)境變量。它的作用與import、package關(guān)鍵字有關(guān)。當(dāng)你寫下improt java.util.*時(shí),編譯器面對(duì)import關(guān)鍵字時(shí),就知道你要引入java.util這個(gè)package中的類;但是編譯器如何知道你把這個(gè) package放在哪里了呢?所以你首先得告訴編譯器這個(gè)package的所在位置;如何告訴它呢?就是設(shè)置CLASSPATH啦 :) 如果java.util這個(gè)package在c:/jdk/ 目錄下,你得把c:/jdk/這個(gè)路徑設(shè)置到CLASSPATH中去!當(dāng)編譯器面對(duì)import java.util.*這個(gè)語(yǔ)句時(shí),它先會(huì)查找CLASSPATH所指定的目錄,并檢視子目錄java/util是否存在,然后找出名稱吻合的已編譯文件 (.class文件)。如果沒有找到就會(huì)報(bào)錯(cuò)!CLASSPATH有點(diǎn)像c/c++編譯器中的INCLUDE路徑的設(shè)置哦,是不是?當(dāng)c/c++編譯器遇 到include 這樣的語(yǔ)句,它是如何運(yùn)作的?哦,其實(shí)道理都差不多!搜索INCLUDE路徑,檢視文件!當(dāng)你自己開發(fā)一個(gè)package時(shí),然后想要用這個(gè) package中的類;自然,你也得把這個(gè)package所在的目錄設(shè)置到CLASSPATH中去!CLASSPATH的設(shè)定,對(duì)JAVA的初學(xué)者而言是 一件棘手的事。所以Sun讓JAVA2的JDK更聰明一些。你會(huì)發(fā)現(xiàn),在你安裝之后,即使完全沒有設(shè)定CLASSPATH,你仍然能夠編譯基本的JAVA 程序,并且加以執(zhí)行。
            .....................................................................................................................................................
            1. PATH環(huán)境變量。作用是指定命令搜索路徑, 在命令行下面執(zhí)行命令如javac編譯java程序時(shí),它會(huì)到PATH變量所指定的路徑中查找看是否能找到相應(yīng)的命令程序。我們需要把jdk安裝目錄下的 bin目錄增加到現(xiàn)有的PATH變量中,bin目錄中包含經(jīng)常要用到的可執(zhí)行文件如javac/java/javadoc等待,設(shè)置好PATH變量后,就 可以在任何目錄下執(zhí)行javac/java等工具了。我們這里設(shè)定的PATH值為:
            %SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem;%SYSTEMROOT%/System32/WindowsPowerShell/v1.0/;C:/Program Files/Common Files/Thunder Network/KanKan/Codecs;C:/Program Files/Microsoft SQL Server/90/Tools/binn/;C:/Program Files/Common Files/TTKN/Bin;C:/Program Files/Common Files/Teleca Shared;C:/Program Files/Java/jdk1.6.0_21/bin
            上述只有紅色部分;C:/Program Files/Java/jdk1.6.0_21/bin是java的PATH變量,注意變量之間需要用";”隔開。
            2. CLASSPATH環(huán)境變量。作用是指定類搜索路徑, 要使用已經(jīng)編寫好的類,前提當(dāng)然是能夠找到它們了,JVM就是通過(guò)CLASSPATH來(lái)尋找類的。我們需要把jdk安裝目錄下的lib子目錄中的 dt.jar和tools.jar設(shè)置到CLASSPATH中,當(dāng)然,當(dāng)前目錄“.”也必須加入到該變量中。這里CLASSPATH為:
            .;C:/Program Files/Java/jdk1.6.0_21/lib/dt.jar;C:/Program Files/Java/jdk1.6.0_21/lib/tools.jar
            3. JAVA_HOME環(huán)境變量。它指向jdk的安裝目錄,Eclipse/NetBeans/Tomcat等軟件就是通過(guò)搜索JAVA_HOME變量來(lái)找到并使用安裝好的jdk。這里JAVA_HOME為:
            C:/Program Files/Java/jdk1.6.0_21
            .....................................................................................................................................................
            java環(huán)境變量配置步驟:
            在windows桌面上右擊“我的電腦” —> “屬性” —> “高級(jí)” —> “環(huán)境變量”,在“系統(tǒng)變量”里我們可以看到系統(tǒng)的各個(gè)環(huán)境變量的值。雙擊某個(gè)變量名可以修改變量值,變量值之間用“;”隔開。我們還可以“新建”原先沒 有的變量。與jdk有關(guān)的有3個(gè)環(huán)境變量;“JAVA_HOME”,“PATH”,“CLASSPATH”。我的系統(tǒng)中“PATH”變量已經(jīng)存在,可以直 接添加新值(其它變量值不要?jiǎng)樱乐蛊渌绦蜻\(yùn)行異常),其它兩個(gè)變量需要新建。
            CLASSPATH= .;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
            JAVA_HOME = C:/Program Files/Java/jdk1.5.0
            PATH  = %JAVA_HOME%/bin;%JAVA_HOME%/jre/bin
            從上面我們可以看出,PATH和CLASSPATH都使用到了JAVA_HOME,也可以使用絕對(duì)路徑,兩者皆可。
            .....................................................................................................................................................
            Tomcat環(huán)境變量配置:
            系統(tǒng)變量中新建
            BASEDIR,路徑為:Tomcat根目錄,如D:\Tomcat
            其它與java jdk相關(guān)的引用路徑可以查看文件bin\setclasspath.bat
            注意,java環(huán)境變量配置JAVA_HOME主要為了其它容器調(diào)用,JAVA_HOME的java jdk路徑后邊不帶“;”  即不可分號(hào)結(jié)束。
          .....................................................................................................................................................
          Tomcat\bin中setclasspath.bat文件
          rem ---------------------------------------------------------------------------
          rem Set CLASSPATH and Java options
          rem
          rem $Id: setclasspath.bat,v 1.6.2.1 2004/08/21 15:49:50 yoavs Exp $
          rem ---------------------------------------------------------------------------
          rem Make sure prerequisite environment variables are set
          if not "%JAVA_HOME%" == "" goto gotJavaHome
          echo The JAVA_HOME environment variable is not defined
          echo This environment variable is needed to run this program
          goto exit
          :gotJavaHome
          if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
          if not exist "%JAVA_HOME%\bin\javaw.exe" goto noJavaHome
          if not exist "%JAVA_HOME%\bin\jdb.exe" goto noJavaHome
          if not exist "%JAVA_HOME%\bin\javac.exe" goto noJavaHome
          goto okJavaHome
          :noJavaHome
          echo The JAVA_HOME environment variable is not defined correctly
          echo This environment variable is needed to run this program
          echo NB: JAVA_HOME should point to a JDK not a JRE
          goto exit
          :okJavaHome
          if not "%BASEDIR%" == "" goto gotBasedir
          echo The BASEDIR environment variable is not defined
          echo This environment variable is needed to run this program
          goto exit
          :gotBasedir
          if exist "%BASEDIR%\bin\setclasspath.bat" goto okBasedir
          echo The BASEDIR environment variable is not defined correctly
          echo This environment variable is needed to run this program
          goto exit
          :okBasedir
          rem Set the default -Djava.endorsed.dirs argument
          set JAVA_ENDORSED_DIRS=%BASEDIR%\common\endorsed
          rem Set standard CLASSPATH
          rem Note that there are no quotes as we do not want to introduce random
          rem quotes into the CLASSPATH
          set CLASSPATH=%JAVA_HOME%\lib\tools.jar
          rem Set standard command for invoking Java.
          rem Note that NT requires a window name argument when using start.
          rem Also note the quoting as JAVA_HOME may contain spaces.
          set _RUNJAVA="%JAVA_HOME%\bin\java"
          set _RUNJAVAW="%JAVA_HOME%\bin\javaw"
          set _RUNJDB="%JAVA_HOME%\bin\jdb"
          set _RUNJAVAC="%JAVA_HOME%\bin\javac"
          goto end
          :exit
          exit /b 1
          :end

          posted @ 2014-08-13 09:59 順其自然EVO 閱讀(656) | 評(píng)論 (0)編輯 收藏

          通過(guò)LoadRunner - Analyze詳細(xì)分析頁(yè)面元素請(qǐng)求

          眾所周知LoadRunner錄制某個(gè)鏈接,包括動(dòng)態(tài)請(qǐng)求與js、css、jpg等靜態(tài)請(qǐng)求。
          web_custom_request("動(dòng)態(tài)請(qǐng)求",
          "URL=http://www.baidu.com/",
          "Method=GET",
          "Resource=0",
          "RecContentType=text/html",
          "Referer=",
          "Snapshot=t1.inf",
          "Mode=HTTP",
          LAST);
          web_custom_request("靜態(tài)請(qǐng)求",
          "URL=http://www.baidu.com/img/baidu_jgylogo3.gif",
          "Method=GET",
          "Resource=1",
          "RecContentType=image/gif",
          "Referer=http://www.baidu.com/",
          "Snapshot=t2.inf",
          LAST);
            針對(duì)頁(yè)面每一個(gè)請(qǐng)求元素,怎么定位具體分析呢?
            1、通過(guò)Analyze生成Web Page Diagnostics圖。
            
          圖一
            2、針對(duì)每一個(gè)請(qǐng)求元素分析
           
           圖二
            
          圖三
            3、根據(jù)單請(qǐng)求元素響應(yīng)時(shí)間圖、Download時(shí)間圖、First Buffer圖,確定性能瓶頸。
            敏捷測(cè)試團(tuán)隊(duì),不再僅僅是在coding之后。而是和研發(fā)人員貫穿在需求分析、規(guī)格說(shuō)明、自動(dòng)化單元測(cè)試、自動(dòng)化驗(yàn)收測(cè)試、靜態(tài)代碼分析、技術(shù)債等環(huán)節(jié)中。所以敏捷項(xiàng)目必定在將來(lái)效率的趨勢(shì)下成為主流。

          posted @ 2014-08-13 09:58 順其自然EVO 閱讀(772) | 評(píng)論 (0)編輯 收藏

          BUG管理系統(tǒng)運(yùn)維記錄(bugfree)

          創(chuàng)建時(shí)間:     2013-06-18
            最新版本:    1.3
            制作者:       Teemo君
            release 1.1  2013-06-08     文檔初生成
            release 1.2  2014-03-07      二次修改,添加維護(hù)記錄
            release 1.3  2014-03-11      BUG管理系統(tǒng),再次修改放在blog
            目的:  記錄工作軌跡,積累工作經(jīng)驗(yàn).  通過(guò)知識(shí)積累形成自己的運(yùn)維體系。
            工作過(guò)兩間公司,都與開發(fā)打交道,需要為開發(fā)提供幫助,BUG管理系統(tǒng)是軟件開發(fā)必不可少的應(yīng)用,
            對(duì)軟件生命周期直到很重要作用,運(yùn)維必須掌握的應(yīng)用之一。
            文檔已經(jīng)形成一年多,不會(huì)對(duì)目前公司造成危害,可以通過(guò)外網(wǎng)發(fā)布。
            需求:
            cc company 屬于創(chuàng)新型通信行業(yè)公司,旗下開發(fā)加測(cè)試有n+2人,需要擁有自己的bug管理跟蹤系統(tǒng),以解決軟件開發(fā)遇到的問(wèn)題.  當(dāng)前使用eazybug來(lái)維護(hù),可是些軟件需要收費(fèi)和人員限制,出于成本和擴(kuò)展性出發(fā),需要選擇開源軟件在公司內(nèi)服搭設(shè)服務(wù)器,以滿足公司開發(fā)需求。
            經(jīng)過(guò)之前比對(duì)zentao,qc,JIRA等項(xiàng)目軟件,其中QC屬于重量級(jí),安裝麻煩且還要收費(fèi),排除;JIRA軟件也不錯(cuò),反正也由于某種原因,排除;zentao 禪道管理軟件輕量級(jí),小清新,可是測(cè)試說(shuō)有點(diǎn)復(fù)雜。最后通過(guò)比對(duì)軟件易用性和簡(jiǎn)單性,出于單純只是解決bug管理的功能,最終選擇使用bugfree軟件.
            軟件介紹:
            BugFree是借鑒微軟的研發(fā)流程和Bug管理理念,使用PHP+MySQL獨(dú)立寫出的一個(gè)Bug管理系統(tǒng)。簡(jiǎn)單實(shí)用、免費(fèi)并且開放源代碼(遵循GNU GPL).命名BugFree 有兩層意思:一是希望軟件中的缺陷越來(lái)越少直到?jīng)]有,F(xiàn)ree嘛;二是表 示它是免費(fèi)且開放源代碼的,大家可以自由使用傳播。
            補(bǔ)充說(shuō)明:
            由于版權(quán)糾紛,bugfree已經(jīng)處于停止開發(fā)和技術(shù)支持,現(xiàn)在其官網(wǎng)和相關(guān)技術(shù)文檔都少之又少了.之前的開始人員已經(jīng)轉(zhuǎn)入到zentao的開發(fā)系統(tǒng)中了,而且zentao項(xiàng)目管理系統(tǒng)更加優(yōu)秀,功能更加強(qiáng)大,在yc公司有一年使用體驗(yàn),推薦.
            也是因?yàn)橘Y料少之又少,寫這個(gè)文檔也是了留下技術(shù)資料,以備將來(lái)使用.
            ################################分界線##########################################
            1. 軟件部署平臺(tái)
            RHEL 5.5   64位    2.6.18內(nèi)核穩(wěn)定版本
            2. 所需相應(yīng)軟件下載
            bugfree3.0.4.zip
            php-json-ext-1.2.1.tar.bz2
            3. 安裝說(shuō)明
            bugfree 是由php開發(fā),部署在LAMP平臺(tái)即可,并且bugfree需要php-json擴(kuò)展庫(kù)的支持,以達(dá)到數(shù)據(jù)交互和展現(xiàn),而這個(gè)軟件包是系統(tǒng)默認(rèn)安裝的,而且yum源也沒有json,需要我們手動(dòng)編譯.
            出于業(yè)務(wù)的簡(jiǎn)單性,使用yum方式安裝lamp軟件系列,方便管理維護(hù).
            4. 安裝LAMP涉及軟件
          # rpm -qa | grep php
          php-cli-5.1.6-27.el5
          php-pdo-5.1.6-27.el5                 這個(gè)軟件包特別注意下
          php-pecl-json-1.2.1-4.el5
          php-common-5.1.6-27.el5
          php-devel-5.1.6-27.el5
          php-mysql-5.1.6-27.el5
          php-gd-5.1.6-27.el5
          php-pear-1.4.9-8.el5
          php-5.1.6-27.el5
          # rpm -qa | grep mysql
          mysql-server-5.0.77-4.el5_4.2
          php-mysql-5.1.6-27.el5
          mysql-devel-5.0.77-4.el5_4.2
          mysql-devel-5.0.77-4.el5_4.2
          mysql-5.0.77-4.el5_4.2
          mysql-5.0.77-4.el5_4.2
          # rpm -qa | grep httpd
          httpd-2.2.3-43.el5
            5. 根據(jù)自己需求,找到對(duì)應(yīng)版本的php-json庫(kù)
            下載地址: wgethttp://pkgs.fedoraproject.org/repo/pkgs/php-json/php-json-ext-1.2.1.tar.bz2/e06e701412a055f3372775216ec3d604/php-json-ext-1.2.1.tar.bz2
            6. 之前的LAMP平臺(tái)準(zhǔn)備好,重啟mysqld and httpd服務(wù)器
            接著執(zhí)行相關(guān)操作,安裝php-json擴(kuò)展
          #解壓文件,并進(jìn)行到目錄
          # tar -xjf php-json-ext-1.2.1.tar.bz2
          #進(jìn)入當(dāng)前路徑,并使用當(dāng)前系統(tǒng)phpize刷新configure文件
          # cd php-json-ext-1.2.1
          # phpize
          Configuring for:
          PHP Api Version:         20041225
          Zend Module Api No:      20050922
          Zend Extension Api No:   220051025
          #可以看到以configure等文件已經(jīng)刷新到當(dāng)前的時(shí)間了.
          # ll
          total 1468
          -rw-r--r-- 1 10008 10008  66540 Jun 18 12:13 acinclude.m4
          -rw-rw-r-- 1 10008 10008 298049 Jun 18 12:13 aclocal.m4
          drwxr-xr-x 2 root  root    4096 Jun 18 12:13 autom4te.cache
          drwxrwxr-x 2 10008 10008   4096 Jun 18 12:13 build
          -rwxr-xr-x 1 10008 10008  42037 Jun 18 12:13 config.guess
          -rw-rw-r-- 1 10008 10008   1610 Mar 31  2006 config.h.in
          -rw-rw-r-- 1 10008 10008   2139 Jan 31  2006 config.m4
          -rwxr-xr-x 1 10008 10008  30253 Jun 18 12:13 config.sub
          -rwxrwxr-x 1 10008 10008 658032 Jun 18 12:13 configure
          #進(jìn)行默認(rèn)當(dāng)前路徑編譯,可以看到會(huì)生成一個(gè)我們需要的模塊
          # ./configure
          # make
          Libraries have been installed in:
          /root/php-json-ext-1.2.1/modules
          If you ever happen to want to link against installed libraries
          in a given directory, LIBDIR, you must either use libtool, and
          specify the full pathname of the library, or use the `-LLIBDIR'
          flag during linking and do at least one of the following:
          - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
          during execution
          - add LIBDIR to the `LD_RUN_PATH' environment variable
          during linking
          - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
          - have your system administrator add LIBDIR to `/etc/ld.so.conf'
          See any operating system documentation about shared libraries for
          more information, such as the ld(1) and ld.so(8) manual pages.
          ----------------------------------------------------------------------
          Build complete.
          (It is safe to ignore warnings about tempnam and tmpnam).
          #由此我們可以知道,其實(shí)YUM安裝的LAMP創(chuàng)建的模塊放置在/usr/lib64/php/modules/,上面的configure記錄也不太可靠.
          # make install
          Installing shared extensions:     /usr/lib64/php/modules/
          # ll /usr/lib64/php/modules/json.so
          -rwxr-xr-x 1 root root 92750 Jun 18 12:14 /usr/lib64/php/modules/json.so
            7. php-json 驗(yàn)證
            做完進(jìn)行數(shù)據(jù)確認(rèn),是運(yùn)維良好的習(xí)慣。重啟httpd服務(wù)器以加載PHP配置,通過(guò)簡(jiǎn)單的phpinfo函數(shù),
            以確認(rèn)已經(jīng)支持json
            spacer.gif@這是就不放圖,大家都知道,需要通過(guò)php頁(yè)面,了解此處php已經(jīng)支持相關(guān)模塊
            ################################分界線##########################################
            8. 實(shí)際安裝bugfree軟件
            #解壓目錄,并移到httpd DocumentRoot下,再通過(guò)瀏覽器訪問(wèn)以下路徑:
            # unzip bugfree3.0.4.zip
            # mv bugfree3.0.4 /var/www/html/bugfree
            # chown -R apache.apache /var/www/html/bugfree
            9. 訪問(wèn)下面連接,即可進(jìn)行頁(yè)面安裝工作,根據(jù)自己情況調(diào)整
            http://192.168.0.107/bugfree/install
            bugfree安裝十分簡(jiǎn)單,只需要三個(gè)步驟即可.
            9.1 環(huán)境檢查,如果有不符合的內(nèi)容,按要求添加即可.
            上面如果沒有安裝要求準(zhǔn)備LAMP的軟件,在環(huán)境檢查時(shí)會(huì)報(bào)錯(cuò)的。
            9.2 在數(shù)據(jù)庫(kù)創(chuàng)建相應(yīng)用戶,界面會(huì)往自動(dòng)調(diào)用,往里面創(chuàng)建表格.
            細(xì)看一下那個(gè)創(chuàng)建數(shù)據(jù)表的文件,所創(chuàng)建的表格絕大部分是INNODB存儲(chǔ)引擎創(chuàng)建的表格.
            create database bugfree;
            grant all privileges on bugfree.* to bugfree@localhost identified by "xxxx";
            9.3  填寫數(shù)據(jù)庫(kù)連接信息,可以讓應(yīng)用與數(shù)據(jù)庫(kù)交互
            9.4  經(jīng)過(guò)幾分鐘等待,就可以完成安裝.
          9.5 訪問(wèn)頁(yè)面,這是最新版本的bugfree 3.0.4,不知道現(xiàn)在還有軟件下載不
            http://192.168.0.107/bugfree
            目前用戶: admin
            密碼:       xxx
            請(qǐng)更改相應(yīng)的密碼
            9.5 打開頁(yè)面效果圖.
            10.  郵件通知功能添加
            保證sendmail服務(wù)器正常啟動(dòng),保證域名能被DNS正常解釋
            修改相對(duì)應(yīng)的配置文件
          # sed -n '105,117p' /var/www/html/bugfree/protected/config/main.php
          array (
          'on' => '1',
          'from_address' => 'xxxxxx',
          'from_name' => 'BugFree',
          'send_method' => 'SMTP',
          'send_params' =>
          array (
          'host' => 'xxxx',
          'smtp_auth' => true,
          'username' => 'xxxx',
          'password' => 'xxxx',
          ),
          ),
            11.  bugfree 維護(hù)記錄
            11.1  注意應(yīng)用所在目錄的讀寫權(quán)限,因?yàn)閍pache會(huì)對(duì)目錄/var/www/html/bugfree內(nèi)容進(jìn)行讀寫操作,權(quán)限不對(duì),會(huì)造成頁(yè)面訪問(wèn)不暢。此處當(dāng)時(shí)通過(guò)查看/var/log/httpd下面的錯(cuò)誤和訪問(wèn)日志分析解決
            11.2  bugfree發(fā)送不了郵件,對(duì)應(yīng)應(yīng)用日志位置,可以檢查下面文件內(nèi)容,發(fā)現(xiàn)和解決問(wèn)題
            重啟檢查下上面那個(gè)main.php文件內(nèi)容
            驗(yàn)證郵件用戶正常發(fā)信
            最后發(fā)現(xiàn)是由于/etc/resolv.conf 沒有內(nèi)容,加入DNS記錄,可是沒有把httpd重啟,應(yīng)用無(wú)法連接DNS進(jìn)行MX解析
            # tail -2 /var/www/html/bugfree/protected/runtime/application.log
            2014/03/11 11:18:35 [error] [bugfree.ProductService] mail send failed:"Language string failed to load: data_not_accepted"
            2014/03/11 11:20:32 [error] [bugfree.ProductService] mail send failed:"Language string failed to load: data_not_accepted"
            12. 目前bugfree幾乎在網(wǎng)絡(luò)上絕跡,而且相關(guān)開發(fā)團(tuán)隊(duì)出現(xiàn)矛盾,此文檔只是相關(guān)維護(hù)記錄,感謝相關(guān)開發(fā)者貢獻(xiàn),才能讓用戶用上這個(gè)軟件,致敬。
            這個(gè)軟件挺穩(wěn)定的,用了一年多9個(gè)月,滿足公司需求,當(dāng)然后期需求復(fù)雜化,我也挺贊同遷移到升級(jí)版本的 zentao禪道。

          posted @ 2014-08-13 09:53 順其自然EVO 閱讀(2339) | 評(píng)論 (0)編輯 收藏

          僅列出標(biāo)題
          共394頁(yè): First 上一頁(yè) 66 67 68 69 70 71 72 73 74 下一頁(yè) Last 
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導(dǎo)航

          統(tǒng)計(jì)

          • 隨筆 - 3936
          • 文章 - 404
          • 評(píng)論 - 179
          • 引用 - 0

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 铁岭市| 镇雄县| 钟祥市| 金昌市| 潼关县| 桃源县| 郎溪县| 巩留县| 凤山县| 阿拉善右旗| 泰兴市| 新竹县| 大丰市| 盈江县| 庆安县| 连平县| 亚东县| 南华县| 麻江县| 突泉县| 长治市| 朝阳区| 湟中县| 洛浦县| 玉树县| 江门市| 霍山县| 石嘴山市| 榕江县| 海伦市| 南投县| 邛崃市| 土默特右旗| 余庆县| 肥东县| 罗甸县| 西安市| 凉山| 盐城市| 余江县| 双峰县|