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 中文字幕免费,国产欧美日韩在线观看精品,午夜欧美视频

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          自動化測試之HTML測試報告

          載地址HTMLTestRunner.py文件:

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

          下載的適合python2,如果python3要修改一些內容

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

          HTMLTestRunner是python標準庫unittest單元測試框架的一個擴展,用于生成HTML測試報告


          生成HTML測試報告

          #coding:utf-8
          import unittest, HTMLTestRunner

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

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

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

          # 定義報告的存放路徑,以二進制寫的形式打開文件
          f = open('test.html', 'wb')

          # 定義測試報告,stream:報告存放路徑,title:報告標題,description:描述
          runner = HTMLTestRunner.HTMLTestRunner(stream=f, title=
          u'測試用例標題', description=u'描述')
          runner.run(suite) # 運行測試用例
          f.close() # 關閉文件


          返回結果(測試報告詳情):

          --stream :存放報告寫入文件的存入區域

          --title :測試報告的主題

          --description :測試報告的描述


          報告用例類和用例方法加備注

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

          在用例類和用例方法下,通過’’’ ‘’’或””” “””來添加備注

          #coding:utf-8
          import unittest, HTMLTestRunner

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

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

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

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

          # 定義報告的存放路徑,以二進制寫的形式打開文件
          f = open('test.html', 'wb')

          # 定義測試報告,stream:報告存放路徑,title:報告標題,description:描述
          runner = HTMLTestRunner.HTMLTestRunner(stream=f, title=
          u'測試用例標題', description=u'描述')
          runner.run(suite) # 運行測試用例
          f.close() # 關閉文件


          返回結果:

          測試報告文件名

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

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

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

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

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

          # 定義測試報告,stream:報告存放路徑,title:報告標題,description:描述
          runner = HTMLTestRunner.HTMLTestRunner(stream=f, title=
          u'測試用例標題', description=u'描述')
          runner.run(suite) # 運行測試用例
          f.close() # 關閉文件


          返回結果:


          測試報告亂碼問題


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

          DF文檔的打印在很多應用場景中都會被使用到,最為常見的就是實驗室信息管理的應用場景,期間涉及到大量的報告呈現及打印的需求。

          LIMS背景介紹

          實驗室信息管理系統(Laboratory Information Management System 英文縮寫LIMS)是將以數據庫為核心的信息化技術與實驗室管理需求相結合的信息化管理工具。以ISO/IEC17025:2017 CNAS-CL01《檢測和校準實驗室能力的通用要求》(國標為GB/T 27025:2008)規范為基礎,結合網絡化技術,將實驗室的業務流程和一切資源以及行政管理等以合理方式進行管理。

          通過LIMS系統,配合分析數據的自動采集和分析,大大提高了實驗室的檢測效率;降低了實驗室運行成本并且體現了快速溯源和痕跡,使傳統實驗室手工作業中存在的各種弊端得以順利解決。目前實驗室信息管理系統在西方發達國家的應用相對比較成熟,我們國家經過多年發展,很多實驗室也開始逐漸認識到信息化在管理中的作用,紛紛開始引入LIMS。

          LIMS系統需求及解決思路

          在LIMS系統構建的過程中,實驗模板設計、實驗數據填報、導出完整的PDF實驗報告并且實現檢測過程無紙化、系統化,檢測報告電子化是LIMS系統的主要需求。那么如何快速又高質量的輸出PDF實驗報告呢?

          借助SpreadJS表格技術及GcExcel僅僅需要三步就可以完成整個功能的開發:

          1. 將SpreadJS集成到系統中,快速實現數據的在線錄入
          2. 在系統中配置導出PDF文檔所需要的參數
          3. 通過GcExcel將實驗報告導出為PDF文件

          具體的操作步驟

          用SpreadJS完成實現模板設計和實驗數據填報

          利用SpreadJS的在線表格編輯器,實驗人員就可以通過類Excel的操作完成實驗報告的設計。

          通過以下代碼就可以將SpreadJS快速集成到現有的系統中:

          創建一個JavaScript應用程序:

          注意 SpreadJS是無依賴的,僅僅需要以下文件: gc.spread.sheets.xx.x.x.css, gc.spread.sheets.all.xx.x.x.min.js即可.

          <!DOCTYPE html><html lang="zh"><head>
          <meta charset="utf-8" />
          <script src="gc.spread.sheets.all.xx.x.x.min.js"><link rel="stylesheet" href="gc.spread.sheets.xx.x.x.css"type="text/css"/></head>
          <body></body></html>

          添加SpreadJS容器元素 - 在頁面的body元素中添加一個DOM元素作為它的容器。

          <div id="ss"></div>

          初始化SpreadJS JavaScript控件。 - SpreadJS控件通過使用new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 })來進行初始化。

          window.onload = function () {// Initialize a workbookvar workbook = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });// get workbook object// var workbook = GC.Spread.Sheets.findControl(document.getElementById('ss'));
          };

          在完成嵌入之后,通過SpreadJS的數據綁定的功能,某些默認數據可以從數據庫加載,顯示到實驗模板中,實驗人員填報的實驗數據也可以通過數據綁定輕松獲取到

          用SpreadJS完成導出PDF(打印)的配置

          使用SpreadJS的在線表格編輯器可以完成導出PDF的配置,可配置導出區域,重復區域,頁眉,頁腳,水印等,對導出PDF報告進行自定義。

          用GCExcel將實驗報告導出

          在SpreadJS中完成模板設計,實驗數據填報,以及各種打印配置后,可以將整個實驗模板文件導出為一個json,發給后端,后端就可以用GCExcel加載,GCExcel可以完美兼容SpreadJS的特性,在SpreadJS中對模板的配置,以及對導出的PDF的配置,在GCExcel中都完美兼容,當然也可以在GCExcel完成對模板的配置以及PDF導出的配置。

          Java
          Workbook workbook = new Workbook();
          //打開SpreadJS導出的模板
          workbook.open("template.ssjson");
          // 導出PDF配置
          PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
          // 配置支持換行縮小
          pdfSaveOptions.getShrinkToFitSettings().setCanShrinkToFitWrappedText(true);
          // 導出PDF
          workbook.save("ExportPdf.pdf");

          至此,就完成PDF文檔的打印。

          使用SpreadJS和GCExcel搭建LIMS系統的優勢

          • SpreadJS能夠幫助LIMS系統快速實現數據的綁定功能,實現數據自動提取,如委托單位信息、例行監測任務等首次錄入后可直接調用,且支持調用歷史任務時對監測項目進行修改并生成新的任務單,無須重復錄入,大大減少了人工成本和降低出錯率。
          • 使用 SpreadJS 設計模板,系統獲取儀器測試數據后填入原始記錄單(預置計算公式、修約等)可直接生成 Excel 記錄表,通過選擇報告模板生成完整的監測報告,全過程無需手寫原始記錄,無需反復錄入監測數據,方便快捷,準確率高。
          • SpreadJS 提供權限控制的方法,可以規范修改流程,嚴格控制報告修改。
          • 使用Spread可以對導出的PDF進行精確配置。
          • GCExcel完美兼容SpreadJS特性,在后端批量導出完整的PDF實驗報告,既美觀又高效。

          活中我們經常會碰到空間領紅包“中毒”自動發不良信息的現象,或者是不知不覺的被人盜取了信息的情況。通常這種情況都是XSS漏洞導致的,我們今天就來講解一下關于XSS漏洞的原理。

          XSS種類:

          反射型

          存儲型

          Dom-based型

          這里面反射型跟持久型都是很常見的,也是用的最廣泛的一種攻擊方式。

          它的主要利用原理是:

          給受害者發送帶有惡意代碼或腳本的鏈接,如果你點擊了鏈接,只要是被HTML所解析并且執行了,那無論你是否快速關閉了點開的頁面,都白瞎了。

          Dom這種XSS漏洞是基于文檔對象模型的一種漏洞,它的特點是通過url傳入參數去控制觸發的。

          下面我們主要來說一下反射型跟存儲型XSS的原理,并附上代碼。

          反射型XSS:

          我們平時常見XSS地方很多都是搜索框(一般網站上都會有搜索文章什么的),我們可以在這種搜索框里面輸入:

          <script>alert('XSS')</script>

          來驗證XSS的漏洞存在與否,如果存在會彈出一個編輯框“XSS”,下面我們自己構建一個這樣的搜索框:

          先新搭建好PHP環境,在站點新建一個xss.php文件,輸入以下的代碼。

          代碼的意思很簡單:

          1. 先創建一個form表單,提交方式設置為GET,提交給本頁面(也就是交給下面的PHP代碼去執行)
          2. 定義一個$xss變量
          3. 如果變量不為空的話,輸出$xss的內容。

          然后在瀏覽器上訪問的效果應該是這樣的:

          這個時候我們就可以輸入常規的信息去搜索,輸入“im liuse”顯示效果如下:

          現在我們改變策略,輸入我們上面說的xss測試代碼<script>alert('XSS')</script>然后執行,你會看到下圖的效果:

          事實證明,沒有進行過濾,如果我們把這個地方的<script>alert('XSS')</script>改成其它的代碼,如:

          <script>alert(document.cookie)</script>

          就可以獲取用戶的cookie(cookie記錄了用戶的登錄信息),拿到cookie有什么用呢?

          舉個例子,比如說拿到你的QQ空間的cookie就可以不需要用戶名密碼登錄你的空間,我們經常見到空間好友自動轉發一些亂七八糟的東西的圖片文字的,基本都是通過xss漏洞搞的。

          說完反射型XSS我們再來說說存儲型XSS。

          存儲型XSS:

          相對于反射型XSS,存儲型XSS的檔次確實高了不少,不過利用難度也相對提高了。

          什么是存儲型XSS呢?沒錯就跟它的名字一樣,是可以儲存起惡意代碼的方式。這種漏洞利用多出現在論壇評論,后臺上傳這些地方,可以是圖片也可以是文字。相對于反射型XSS不同的是,存儲型XSS可以保存在服務器端(存到數據庫)下面我們用代碼舉例:

          我們在上面的xss.php文件的基礎上修改一下:

          同樣的代碼還是很容易理解:

          1. 先通過mysql_connect()函數來連接mysql
          2. 然后自己在mysql中建一個XSS_test數據庫
          3. 創建一個XssValue字段來收錄一會提交進的惡意代碼
          4. 如果有數據過來,保存到數據庫。

          下面,我們來實驗一下。

          在搜索框同樣輸入我們的XSS代碼:

          你會發現貌似前臺沒有顯示,但去mysql數據庫看已經存儲到數據庫了,以后任何人去訪問某個調用這個數據庫的頁面都會受影響!

          以上就是簡單的演示說明,下面我們講講防范過濾。

          過濾實現:

          重點對象:

          <>(尖括號)、”(引號)、 ‘(單引號)、%(百分比符號)、;(分號)、()(括號)、&(& 符號)、+(加號)

          過濾函數:

          (1)htmlspecialchars() 函數,用于轉義處理在頁面上顯示的文本。

          (2)htmlentities() 函數,用于轉義處理在頁面上顯示的文本。

          (3)strip_tags() 函數,過濾掉輸入、輸出里面的惡意標簽。

          (4)header() 函數,使用header("Content-type:application/json"); 用于控制 json 數據的頭部,不用于瀏覽。

          (5)urlencode() 函數,用于輸出處理字符型參數帶入頁面鏈接中。

          (6)intval() 函數用于處理數值型參數輸出頁面中。

          好,今天XSS就先介紹到這里了,希望各位一定要認識到網安的重要性!


          主站蜘蛛池模板: 国产AV一区二区三区传媒| 精品无码国产一区二区三区麻豆| 精品国产日产一区二区三区| 日本一区二区三区不卡视频| 国产91一区二区在线播放不卡| 中文字幕av一区| 国产精品女同一区二区久久| 日韩精品一区在线| 麻豆一区二区三区精品视频| 激情内射日本一区二区三区| 无码日韩人妻AV一区免费l| 日韩一区二区视频在线观看| 久久无码人妻一区二区三区午夜| 中文字幕在线观看一区二区 | 国产裸体歌舞一区二区| 日韩精品一区二区三区视频 | 久久国产三级无码一区二区| 免费一区二区三区四区五区| 无码人妻精品一区二区三区9厂| 在线精品视频一区二区| 亚洲宅男精品一区在线观看| 日本内射精品一区二区视频| 久久人做人爽一区二区三区| 精品日韩亚洲AV无码一区二区三区| 亚洲av无码一区二区三区乱子伦 | 国产伦理一区二区| 国产裸体歌舞一区二区| 性色A码一区二区三区天美传媒| 国产成人精品一区二区三区无码| 中文字幕日本一区| 一本大道东京热无码一区| 日本一区精品久久久久影院| 久久亚洲AV午夜福利精品一区| 国产亚洲综合一区柠檬导航| 亚洲AV美女一区二区三区| 久久综合亚洲色一区二区三区 | 日本欧洲视频一区| 久久国产午夜一区二区福利| 韩国美女vip福利一区| 成人区人妻精品一区二区三区| 波多野结衣一区二区三区高清av|