Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲99久久久久综合,日本一道本高清免费,国产一级片视频

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          自動(dòng)化測(cè)試之HTML測(cè)試報(bào)告

          載地址HTMLTestRunner.py文件:

          http://tungwaiyip.info/software/HTMLTestRunner.html

          下載的適合python2,如果python3要修改一些內(nèi)容

          首先吧HTMLTestRunner文件添加到環(huán)境變量里,可以直接放到python的Lib目錄下

          HTMLTestRunner是python標(biāo)準(zhǔn)庫(kù)unittest單元測(cè)試框架的一個(gè)擴(kuò)展,用于生成HTML測(cè)試報(bào)告


          生成HTML測(cè)試報(bào)告

          #coding:utf-8
          import unittest, HTMLTestRunner

          class Testcase(unittest.TestCase): # 測(cè)試用例類
          # 具體的測(cè)試用例,一定要以test開(kāi)頭
          def test1(self):
          self.assertEqual(1, 1)

          def test2(self):
          self.assertEqual(2, 2)

          if __name__ == "__main__":
          # 構(gòu)造測(cè)試集
          suite = unittest.TestSuite()
          suite.addTest(unittest.makeSuite(Testcase)) # 執(zhí)行該測(cè)試類所有用例

          # 定義報(bào)告的存放路徑,以二進(jìn)制寫的形式打開(kāi)文件
          f = open('test.html', 'wb')

          # 定義測(cè)試報(bào)告,stream:報(bào)告存放路徑,title:報(bào)告標(biāo)題,description:描述
          runner = HTMLTestRunner.HTMLTestRunner(stream=f, title=
          u'測(cè)試用例標(biāo)題', description=u'描述')
          runner.run(suite) # 運(yùn)行測(cè)試用例
          f.close() # 關(guān)閉文件


          返回結(jié)果(測(cè)試報(bào)告詳情):

          --stream :存放報(bào)告寫入文件的存入?yún)^(qū)域

          --title :測(cè)試報(bào)告的主題

          --description :測(cè)試報(bào)告的描述


          報(bào)告用例類和用例方法加備注

          為了生成帶有中文描述的測(cè)試用例類和測(cè)試用例

          在用例類和用例方法下,通過(guò)’’’ ‘’’或””” “””來(lái)添加備注

          #coding:utf-8
          import unittest, HTMLTestRunner

          class Testcase(unittest.TestCase): # 測(cè)試用例類
          u'''類名后加備注'''

          def test1(self):
          u'''用例后面加備注1'''
          self.assertEqual(1, 1)

          def test2(self):
          u'''用例后面加備注2'''
          self.assertEqual(2, 2)

          if __name__ == "__main__":
          # 構(gòu)造測(cè)試集
          suite = unittest.TestSuite()
          suite.addTest(unittest.makeSuite(Testcase))

          # 定義報(bào)告的存放路徑,以二進(jìn)制寫的形式打開(kāi)文件
          f = open('test.html', 'wb')

          # 定義測(cè)試報(bào)告,stream:報(bào)告存放路徑,title:報(bào)告標(biāo)題,description:描述
          runner = HTMLTestRunner.HTMLTestRunner(stream=f, title=
          u'測(cè)試用例標(biāo)題', description=u'描述')
          runner.run(suite) # 運(yùn)行測(cè)試用例
          f.close() # 關(guān)閉文件


          返回結(jié)果:

          測(cè)試報(bào)告文件名

          #coding:utf-8
          import unittest, HTMLTestRunner, time
          from unittest.loader import makeSuite

          class Testcase(unittest.TestCase): # 測(cè)試用例類
          # 具體的測(cè)試用例,一定要以test開(kāi)頭
          def test1(self):
          self.assertEqual(1, 1)

          def test2(self):
          self.assertEqual(2, 2)

          if __name__ == "__main__":
          # 構(gòu)造測(cè)試集
          suite = unittest.TestSuite()
          suite.addTest(makeSuite(Testcase)) # 執(zhí)行該測(cè)試類所有用例

          # 定義報(bào)告的存放路徑,以二進(jìn)制寫的形式打開(kāi)文件
          now = time.strftime("%y-%m-%d %H_%M_%S")
          f = open('./' + now + 'test.html', 'wb')

          # 定義測(cè)試報(bào)告,stream:報(bào)告存放路徑,title:報(bào)告標(biāo)題,description:描述
          runner = HTMLTestRunner.HTMLTestRunner(stream=f, title=
          u'測(cè)試用例標(biāo)題', description=u'描述')
          runner.run(suite) # 運(yùn)行測(cè)試用例
          f.close() # 關(guān)閉文件


          返回結(jié)果:


          測(cè)試報(bào)告亂碼問(wèn)題


          將紅框里的內(nèi)容注釋掉改成uo = o.decode('utf-8')

          、為什么用命令行模式

          使用GUI方式啟動(dòng)jmeter,運(yùn)行線程較多的測(cè)試時(shí),會(huì)造成內(nèi)存和CPU的大量消耗,導(dǎo)致客戶機(jī)卡死;

          所以一般采用的方式是在GUI模式下調(diào)整測(cè)試腳本,再用命令行模式執(zhí)行;

          命令行方式支持在多個(gè)環(huán)境下使用,windosw的dos環(huán)境下,也可以在linux環(huán)境上執(zhí)行。

          注意:使用命令執(zhí)行jmeter腳本必須使用jmeter 3.0及以上版本

          2、怎么用

          2.1、執(zhí)行命令

          jmeter -n -t <testplan filename> -l <listener filename>
          
          示例: jmeter -n -t testplan.jmx -l test.jtl
          
          示例含義:表示以命令行模式運(yùn)行testplan.jmx文件,輸出的日志文件為test.jtl

          2.2、參數(shù)介紹

          Jmeter官方手冊(cè)給的介紹如下:

          -h, –help -> prints usage information and exit
          -n, –nongui -> run JMeter in nongui mode
          -t, –testfile <argument> -> the jmeter test(.jmx) file to run
          -l, –logfile <argument> -> the file to log samples to
          -r, –runremote -> Start remote servers (as defined in remote_hosts)
          -H, –proxyHost <argument> -> Set a proxy server for JMeter to use
          -P, –proxyPort <argument> -> Set proxy server port for JMeter to use

          中文釋義:

          -h 幫助 -> 打印出有用的信息并退出
          
          -n 非 GUI 模式 -> 在非 GUI 模式下運(yùn)行 JMeter
          
          -t 測(cè)試文件 -> 要運(yùn)行的 JMeter 測(cè)試腳本文件
          
          -l 日志文件 -> 記錄結(jié)果的文件
          

          -R 遠(yuǎn)程執(zhí)行 -> 遠(yuǎn)程執(zhí)行機(jī)的IP(ip地址)如果有多個(gè)ip時(shí),使用-R 192.168.2.170,192.168.2.171(分布式使用)

          -r 遠(yuǎn)程執(zhí)行 -> 在Jmter.properties文件中指定的所有遠(yuǎn)程服務(wù)器(分布式使用)
          
          -H 代理主機(jī) -> 設(shè)置 JMeter 使用的代理主機(jī)
          
          -P 代理端口 -> 設(shè)置 JMeter 使用的代理主機(jī)的端口號(hào)

          2.3、執(zhí)行過(guò)程

          命令:jmeter -n -t C:\Users\yzs\Desktop\Unione_performance.jmx -l report-result.jtl

          不在jmeter安卓目錄執(zhí)行腳本的前提是配置了jmeter的環(huán)境變量。

          2.4、報(bào)告查看

          上述的命令有測(cè)試結(jié)果保存到D:\report中,在GUI模式下查看測(cè)試報(bào)告:

          1、在測(cè)試計(jì)劃下,添加對(duì)應(yīng)的測(cè)試報(bào)告元件,舉例增加了:查看結(jié)果樹(shù)、聚合報(bào)告

          2、在“所有數(shù)據(jù)寫入一個(gè)文件”,選擇加載對(duì)應(yīng)的結(jié)果文件

          3、下面就會(huì)有對(duì)應(yīng)的表格展示,具體見(jiàn)下圖

          2.5、命令行傳遞變量值

          設(shè)置線程組的線程數(shù)和循環(huán)次數(shù)。

          注意格式:

          ${__P(threadNum)}

          ${__P(threadCount)}

          其中P前面是兩個(gè)下劃線,()內(nèi)就是變量名

          執(zhí)行時(shí),在命令行中用-J參數(shù)給變量賦值即可:

          jmeter -n -t C:\Users\yzs\Desktop\Unione_performance.jmx -J threadNum=10 -J threadCount=2 -l report-result.jtl

          此次測(cè)試相當(dāng)于:10個(gè)線程,循環(huán)2次,共計(jì)20個(gè)請(qǐng)求。

          3、生成HTML報(bào)告

          生成HTML報(bào)告有2種方式,一種是直接在命令行加上-o參數(shù),另一種是已有jtl結(jié)果文件,運(yùn)行命令生成報(bào)告

          3.1、命令行直接生成報(bào)告

          jmeter -n -t 【Jmx腳本位置】-l 【中間文件result.jtl位置】-e -o 【報(bào)告指定文件夾】
          -e:測(cè)試結(jié)束后,生成測(cè)試報(bào)告
          -o:指定測(cè)試報(bào)告的存放位置

          注意:-o后面跟的文件夾一定是不存在的或者是空文件夾

          3.2、已有jtl結(jié)果文件,運(yùn)行命令生成報(bào)告

          jmeter -g【已經(jīng)存在的.jtl文件的路徑】-o 【用于存放html報(bào)告的目錄】

          注意:經(jīng)實(shí)操,windows系統(tǒng)上,以上2種方法都可以生成HTML測(cè)試報(bào)告,但是在Linux系統(tǒng)上第1種方法,沒(méi)有生成報(bào)告,只有第二種方法才可以(具體原因后面在慢慢找吧)

          3.3、HTML報(bào)告注解

          用瀏覽器打開(kāi)index.html

          報(bào)告詳解

          Dashboard:(重點(diǎn)查看)
          Test and Report informations:指的是測(cè)試和報(bào)告信息

          • File:測(cè)試結(jié)果的保存文件名稱
          • Start Time:測(cè)試開(kāi)始時(shí)間
          • End Time:測(cè)試結(jié)束時(shí)間
          • Filter for display展示過(guò)濾器

          APDEX(Application Performance Index):應(yīng)用程序性能滿意度的標(biāo)準(zhǔn)

          其中,

          • “Apdex”范圍在0-1之間,1表示達(dá)到所有用戶均滿意,越接近1滿意度越高
          • “toleration threshold”:耐受閾值(0.5秒)
          • “frustration threshold”:挫敗閾值(1.5秒)

          Requests Summary:請(qǐng)求的通過(guò)率(OK)與失敗率(KO),百分比顯示

          Statistics:數(shù)據(jù)分析,基本將Summary Report和Aggrerate Report的結(jié)果合并(平均響應(yīng)時(shí)間、TPS在此查看)

          Errors:錯(cuò)誤情況,依據(jù)不同的錯(cuò)誤類型,將所有錯(cuò)誤結(jié)果展示

          關(guān)于Apdex的補(bǔ)充:

          性能指數(shù),Apdex(Application Performance Index)是一個(gè)國(guó)際通用標(biāo)準(zhǔn),Apdex 是用戶對(duì)應(yīng)用性能滿意度的量化值。它提供了一個(gè)統(tǒng)一的測(cè)量和報(bào)告用戶體驗(yàn)的方法,把最終用戶的體驗(yàn)和應(yīng)用性能作為一個(gè)完整的指標(biāo)進(jìn)行統(tǒng)一度量。下圖表示為通用用戶滿意度區(qū)域,0代表沒(méi)有滿意用戶,1則代表所有用戶都滿意。實(shí)際業(yè)務(wù)系統(tǒng)開(kāi)發(fā)過(guò)程中,1是團(tuán)隊(duì)的追求目標(biāo)。

          若所有請(qǐng)求的Apdex值都接近1,說(shuō)明用戶滿意度優(yōu)秀,也從側(cè)面說(shuō)明了服務(wù)器響應(yīng)速度快。
          通常而言,
          最低要求超過(guò)0.5,當(dāng)然項(xiàng)目組可設(shè)定具體需求。

          Charts:(輔助分析)

          主要有如下特點(diǎn):
          (1)將測(cè)試過(guò)程中經(jīng)常使用的數(shù)據(jù),用圖表的形式展示,讓測(cè)試結(jié)果更加直觀
          (2)每個(gè)圖表數(shù)據(jù),有兩種展示形式
          (3)支持請(qǐng)求樣例過(guò)濾顯示
          (4)支持導(dǎo)出PNG圖片格式

          Over Time Charts

          • Response Times Over Time:每秒鐘響應(yīng)時(shí)間,X軸表示的是系統(tǒng)運(yùn)行的時(shí)刻,Y軸表示的是響應(yīng)時(shí)間,F(xiàn)(X,Y)表示系統(tǒng)隨著時(shí)間的推移,系統(tǒng)的響應(yīng)時(shí)間的變化,可以看出響應(yīng)時(shí)間穩(wěn)定性
          • Bytes Throughput Over Time:字節(jié)接收與發(fā)送的數(shù)量,每秒傳輸字節(jié)吞吐量,表明Jmeter在測(cè)試時(shí),隨著時(shí)間推移發(fā)送和接收的字節(jié)數(shù)
          • Latencies Over Time:延遲時(shí)間

          Throughput Charts

          • Hits Per Second: 每秒點(diǎn)擊率
          • Codes Per Second:每秒狀態(tài)碼數(shù)量
          • Transactions Per Second:每秒事務(wù)量
          • Response Time Vs Request:響應(yīng)時(shí)間點(diǎn)請(qǐng)求的成功與失敗數(shù)
          • Latency Vs Request:延遲時(shí)間點(diǎn)請(qǐng)求的成功與失敗數(shù)

          Response Times Charts

          • Response Time Percentiles:響應(yīng)時(shí)間百分比
          • Active Threads Over Time:激活線程數(shù)
          • Time Vs Threads:響應(yīng)時(shí)間用戶數(shù), X軸表示的是活動(dòng)線程數(shù),也就是并發(fā)訪問(wèn)的用戶數(shù),Y軸表示的是響應(yīng)時(shí)間,F(xiàn)(X,Y)表示在某種并發(fā)量的情況下,系統(tǒng)的響應(yīng)時(shí)間是多少
          • Response Time Distribution:響應(yīng)時(shí)間分布

          3.4、HTML報(bào)告的自定義配置

          JMeter3.0開(kāi)始在bin目錄新增了reportgenerator.properties文件保存了所有關(guān)于圖形化HTML報(bào)告生成模塊的默認(rèn)配置,要變更配置,建議不要直接編輯該文件,而是推薦在user.properties中去配置和覆蓋。

          3.4.1總體配置

          總體配置都是以jmeter.reportgenerator.為前綴,如:jmeter.reportgenerator.overall_granularity=60000

          • overall_granularity:定義采樣點(diǎn)粒度,默認(rèn)為60000ms,通常在穩(wěn)定性以外的測(cè)試中,我們可能需要定義更細(xì)的粒度,比如1000ms,我們可以在user.properties文件末尾添加如下配置
          # Change this parameter if you want to change the granularity of over time graphs.
          jmeter.reportgenerator.overall_granularity=6000
          • report_title:定義報(bào)告的標(biāo)題,我們可能需要將標(biāo)題定義為實(shí)際測(cè)試項(xiàng)名稱
          • apdex_satisfied_threshold:定義Apdex評(píng)估中滿意的閾值(單位ms)
          • apdex_tolerated_threshold: 定義Apdex評(píng)估中可容忍的閾值

          Apdext = (Satisfied Count + Tolerating Count / 2) / Total Samples


          另外,在jmeter.properties中,有關(guān)于集合報(bào)告中的三個(gè)百分位的默認(rèn)值:

          aggregate_rpt_pct1 : Defaults to 50
          aggregate_rpt_pct2 : Defaults to 70
          aggregate_rpt_pct3 : Defaults to 99

          3.5、HTML報(bào)告的定制

          JMeter的HTML報(bào)告生成時(shí)是使用了固定的模板,模板文件路徑為./bin/report-template。
          進(jìn)入該目錄可以看到報(bào)告的每個(gè)頁(yè)面都有一個(gè).fmkr模板文件,包括index.html.fmkr和./content/pages路徑下的幾個(gè)文件。通過(guò)查看這些模板文件,就可以知道怎樣去進(jìn)行報(bào)告的輕度定制,比如將一些文本修改得更易懂,或者修改為中文等

          頁(yè)面的title
          默認(rèn)為"Apache JMeter Dashboard"
          可以由reportgenerator.properties中的jmeter.reportgenerator.report_title來(lái)統(tǒng)一定義,這種方式就是所有頁(yè)面的title都使用同一個(gè)。
          也可以直接修改對(duì)應(yīng)的.fmkr文件中的title標(biāo)簽中雙引號(hào)內(nèi)的值,如<title>${reportTitle!"想要設(shè)置的title"}</title>,這中方式可以為每個(gè)頁(yè)面單獨(dú)定義title
          圖表的名稱
          當(dāng)前版本下,各圖表的名稱是直接在模板文件中定義,要修改也是直接修改模板文件中對(duì)應(yīng)元素的值即可
          如要修改Transactions Per Second圖表的名稱,可以直接在./content/pages/Throughput.html.fmkr文件中修改,效果如下圖


          、 前言

          1、之前出了一篇oracle自動(dòng)巡檢腳本生成html報(bào)告和一篇Linux服務(wù)器系統(tǒng)自動(dòng)巡檢腳本生成html報(bào)告,本篇文章出一篇mysql自動(dòng)巡檢腳本生成html報(bào)告。

          2、腳本只提供部分簡(jiǎn)單的巡檢內(nèi)容,如binlog信息、數(shù)據(jù)庫(kù)運(yùn)行信息,還有些mysql的一些重要參數(shù)配置,其他的巡檢內(nèi)容大家根據(jù)實(shí)際需要編輯修改,增加符合自己需求的巡檢內(nèi)容。

          3、項(xiàng)目已經(jīng)上傳到我的github上

          項(xiàng)目地址:https://github.com/domdanrtsey/mywatch

          二、注意事項(xiàng)與報(bào)告部分截圖

          注意閱讀git上的README.md說(shuō)明




          三、README.md

          1、需要使用root用戶執(zhí)行
          2、使用說(shuō)明

          多實(shí)例下運(yùn)行此腳本時(shí),要注意區(qū)分不同實(shí)例的root用戶密碼與對(duì)應(yīng)端口號(hào)
          myuser="root"
          mypasswd="XXXXX"
          myip="localhost"
          myport="3306"

          3、執(zhí)行完巡檢之后,將在腳本所在的路徑下生成html巡檢結(jié)果報(bào)告,如下192.168.35.244os_mysql_simple_summary.html

          4、巡檢項(xiàng)信息如下(其他統(tǒng)計(jì)項(xiàng)可根據(jù)實(shí)際需要自行添加)

          0)、巡檢ip信息

          1)、數(shù)據(jù)庫(kù)基本信息與binlog參數(shù)信息

          2)、數(shù)據(jù)庫(kù)運(yùn)行狀況信息

          3)、數(shù)據(jù)庫(kù)一些重要參數(shù)配置信息

          四、腳本內(nèi)容


          主站蜘蛛池模板: 亚洲第一区精品观看| 无码乱人伦一区二区亚洲| 久久久久女教师免费一区| 国产一区二区精品在线观看| 国产裸体舞一区二区三区| 亚洲一区二区三区国产精品| 成人精品视频一区二区三区不卡 | 一区视频在线播放| 国产色情一区二区三区在线播放| 亚洲一区二区成人| 日韩精品一区二区三区中文3d | 国产精品美女一区二区三区 | 一区二区三区内射美女毛片| 亚洲一区无码中文字幕| 无码夜色一区二区三区| 亚洲一区二区三区免费| 亚洲高清一区二区三区| 亚洲av成人一区二区三区在线观看 | 久久精品一区二区三区日韩 | 亚洲乱码一区二区三区在线观看 | 中文字幕日韩人妻不卡一区| 亚洲综合一区二区| 亚洲一区二区三区在线视频| 97av麻豆蜜桃一区二区| 成人乱码一区二区三区av| 蜜桃无码AV一区二区| 亚洲视频一区二区| 成人一区二区三区视频在线观看| 中文字幕一区在线观看| 精品一区二区三人妻视频| 一本大道东京热无码一区| 精品一区二区三区水蜜桃| 人妻久久久一区二区三区| 国产精品毛片a∨一区二区三区| 亚洲午夜在线一区| 国产av一区二区三区日韩| 国产高清在线精品一区二区| 国产精品亚洲一区二区在线观看| 亚洲一区二区三区在线观看精品中文| 国产激情一区二区三区四区| 中文激情在线一区二区|