本發(fā)明涉及軟件技術領域,尤其涉及一種自動化打印測試方法及裝置。
背景技術:
打印測試的主要內(nèi)容,是比較打印機實際打印結(jié)果與標準模板的差異,以考察打印系統(tǒng)相關的程序,例如打印機后端數(shù)據(jù)組裝、打印控件處理程序或前端處理程序,其設置是否正確、運行是否正常。所述比較的項目包括打印結(jié)果和標準模板的排版、布局、線條、條碼、打印紙張長寬比、折行或截取等;以及校驗實際打印結(jié)果的數(shù)據(jù),也就是比較實際打印字段的內(nèi)容信息和相應的數(shù)據(jù)庫表中對應字段的值是否符合。
目前打印測試主要依靠人工進行,由測試人員肉眼比對實際打印結(jié)果和標準模板,以及手動查詢數(shù)據(jù)表中的字段,以與實際打印結(jié)果的數(shù)據(jù)進行對比,這種方式效率低,而且容易測試過程中出現(xiàn)遺漏。
技術實現(xiàn)要素:
為克服相關技術中打印測試效率低的問題,本公開提供一種自動化打印測試方法及裝置。
根據(jù)本公開實施例的第一方面,提供一種自動化打印測試方法,包括:
調(diào)用被測試的打印程序接口,讀取基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),得到打印結(jié)果數(shù)據(jù),所述基礎數(shù)據(jù)庫用于存儲打印測試數(shù)據(jù)并預先建立;
比對第一字段的值與第二字段的值,其中,所述第一字段為所述打印結(jié)果數(shù)據(jù)中的字段,所述第二字段為所述基礎數(shù)據(jù)庫中的字段,且所述第一字段與所述第二字段對應;
判斷所述第一字段的值與所述第二字段的值是否相異;
如果所述第一字段的值與所述第二字段的值相異,記錄所述第一字段。
其中,所述基礎數(shù)據(jù)庫預先根據(jù)測試目的,從打印測試單據(jù)中提取公用數(shù)據(jù)作為基礎數(shù)據(jù)而建立。
可選的,所述讀取基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),得到打印結(jié)果數(shù)據(jù),包括:
以所讀取的所述打印測試數(shù)據(jù)為打印結(jié)果數(shù)據(jù);或者,
根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片;
根據(jù)所述打印結(jié)果圖片提取打印結(jié)果數(shù)據(jù)。
可選的,所述的自動化打印測試方法,還包括:
根據(jù)所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),從標準模版圖片庫中獲取對應的標準模板圖片,其中,所述標準模版圖片庫中的標準模版圖片根據(jù)所述基礎數(shù)據(jù)庫中的數(shù)據(jù)生成,并且所述標準模版圖片與所述基礎數(shù)據(jù)庫中的數(shù)據(jù)相對應;
根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片;
根據(jù)所述打印結(jié)果圖片的測試范圍,確定所述標準模板圖片的測試范圍;
如果確定所述標準模版圖片的測試范圍成功,則遍歷所述打印結(jié)果圖片在其測試范圍以內(nèi)的像素點以及所述標準模板圖片在其測試范圍以內(nèi)的像素點,并比對第一像素點的rgb值和第二像素點的rgb值,其中,所述第一像素點為打印結(jié)果圖片在其測試范圍以內(nèi)的像素點,所述第二像素點為標準模版圖片在其測試范圍以內(nèi)的像素點,所述第二像素點與所述第一像素點對應;
判斷所述第一像素點的rgb值和所述第二像素點的rgb值是否相異;
如果所述第一像素點的rgb值和所述第二像素點的rgb值相異,則在所述打印結(jié)果圖片上標記所述第一像素點和/或在所述標準模版圖片上標記所述第二像素點,和/或統(tǒng)計所述第一像素點的個數(shù)。
可選的,所述根據(jù)所述打印結(jié)果圖片的測試范圍,確定所述標準模板圖片的測試范圍,包括:
獲取所述打印結(jié)果圖片的測試范圍的第一邊界像素點,所述第一邊界像素點至少包括第一邊界的所有頂點像素點,所述第一邊界為所述打印結(jié)果圖片的測試范圍的邊界;
將所述第一邊界映射到所述標準模版圖片,得到在所述標準模板圖片的映射邊界;
獲取第二邊界像素點,所述第二邊界像素點至少包括所述映射邊界的所有頂點像素點,所述第二邊界像素點與所述第一邊界像素點對應,且所述第二邊界像素點的個數(shù)等于所述第一邊界像素點的個數(shù);
比對所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值;
如果所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值全部相同,則確定所述標準模版圖片的測試范圍成功,以所述映射邊界以內(nèi)的范圍為所述標準模板圖片的測試范圍,否則,確定所述標準模版圖片的測試范圍失敗。
可選的,所述的自動化打印測試方法,以所述打印結(jié)果圖片在其測試范圍內(nèi)的所有像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)的所有像素點為所述第 二像素點。
可選的,所述的自動化打印測試方法,以所述打印結(jié)果圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第二像素點。
根據(jù)本公開實施例的第一方面,提供另一種自動化打印測試方法,包括:
調(diào)用被測試的打印程序接口,讀取基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),所述基礎數(shù)據(jù)庫用于存儲打印測試數(shù)據(jù)并預先建立;
根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片;
根據(jù)所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),從標準模版圖片庫中獲取對應的標準模版圖片,所述標準模版圖片庫中的標準模版圖片根據(jù)所述基礎數(shù)據(jù)庫中的數(shù)據(jù)生成,并且所述標準模版圖片與所述基礎數(shù)據(jù)庫中的數(shù)據(jù)相對應;以及,
將所述打印結(jié)果圖片與所述標準模版圖片進行比對,得到打印測試結(jié)果。
其中,所述基礎數(shù)據(jù)庫預先根據(jù)測試目的,從不同類型的打印測試單據(jù)中提取公用數(shù)據(jù)作為基礎數(shù)據(jù)而建立。
可選的,所述將所述打印結(jié)果圖片與所述標準模版圖片進行比對,得到打印測試結(jié)果,包括:
根據(jù)所述打印結(jié)果圖片的測試范圍,確定所述標準模板圖片的測試范圍;
如果確定所述標準模版圖片的測試范圍成功,則遍歷所述打印結(jié)果圖片在其測試范圍以內(nèi)的像素點以及所述標準模板圖片在其測試范圍以內(nèi)的像素點,并比對第一像素點的rgb值和第二像素點的rgb值,其中,所述第一像素點為打印結(jié)果圖片在其測試范圍以內(nèi)的像素點,所述第二像素點為標準模版圖片在其測試范圍以內(nèi)的像素點,所述第二像素點與所述第一像素點對應;
判斷所述第一像素點的rgb值和所述第二像素點的rgb值是否相異;
如果所述第一像素點的rgb值和所述第二像素點的rgb值相異,則在所述打印結(jié)果圖片上標記所述第一像素點和/或在所述標準模版圖片上標記所述第二像素點,和/或統(tǒng)計所述第一像素點的個數(shù)。
可選的,所述根據(jù)所述打印結(jié)果圖片的測試范圍,確定所述標準模板圖片的測試范圍,包括:
獲取所述打印結(jié)果圖片的測試范圍的第一邊界像素點,所述第一邊界像素點至少包括第一邊界的所有頂點像素點,所述第一邊界為所述打印結(jié)果圖片的測試范圍的邊界;
將所述第一邊界映射到所述標準模版圖片,得到在所述標準模板圖片的映射邊界;
獲取第二邊界像素點,所述第二邊界像素點至少包括所述映射邊界的所有頂點像素點,所述第二邊界像素點與所述第一邊界像素點對應,且所述第二邊界像素點的個數(shù)等于所述第一邊界像素點的個數(shù);
比對所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值;
如果所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值全部相同,則確定所述標準模版圖片的測試范圍成功,以所述映射邊界以內(nèi)的范圍為所述標準模板圖片的測試范圍,否則,確定所述標準模版圖片的測試范圍失敗。
可選的,所述的自動化打印測試方法,以所述打印結(jié)果圖片在其測試范圍內(nèi)的所有像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)的所有像素點為所述第二像素點。
可選的,所述的自動化打印測試方法,以所述打印結(jié)果圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第二像素點。
相應于本公開實施例的第一方面,根據(jù)本公開實施例的第三方面,提供一種自動化打印測試裝置,包括:
打印結(jié)果數(shù)據(jù)獲取單元,用于調(diào)用被測試的打印程序接口,讀取基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),得到打印結(jié)果數(shù)據(jù),所述基礎數(shù)據(jù)庫用于存儲打印測試數(shù)據(jù)并預先建立;
字段比對單元,用于比對第一字段的值與第二字段的值,其中,所述第一字段為所述打印結(jié)果數(shù)據(jù)中的字段,所述第二字段為所述基礎數(shù)據(jù)庫中的字段,且所述第一字段與所述第二字段對應;
第一判斷單元,用于判斷所述第一字段的值與所述第二字段的值是否相異;
第一測試結(jié)果處理單元,用于如果所述第一字段的值與所述第二字段的值相異,記錄所述第一字段。
其中,所述基礎數(shù)據(jù)庫預先根據(jù)測試目的,從打印測試單據(jù)中提取公用數(shù)據(jù)作為基礎數(shù)據(jù)而建立。
可選的,所述打印結(jié)果數(shù)據(jù)獲取單元,具體用于:
以所讀取的所述打印測試數(shù)據(jù)為打印結(jié)果數(shù)據(jù);或者,
根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片;
根據(jù)所述打印結(jié)果圖片提取打印結(jié)果數(shù)據(jù)。
可選的,所述的自動化打印測試裝置,還包括:
標準模版圖片獲取單元,用于根據(jù)所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),從標準模版圖片庫中獲取對應的標準模板圖片,其中,所述標準模版圖片庫中的標準模版圖片根據(jù)所述基礎數(shù)據(jù)庫中的數(shù)據(jù)生成,并且所述標準模版圖片與所述基礎數(shù)據(jù)庫中的數(shù)據(jù)相對應;
打印單元,用于根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片;
模板測試范圍確定單元,用于根據(jù)所述打印結(jié)果圖片的測試范圍,確定所述標準模板圖片的測試范圍;
像素點比對單元,用于如果確定所述標準模版圖片的測試范圍成功,則遍歷所述打印結(jié)果圖片在其測試范圍以內(nèi)的像素點以及所述標準模板圖片在其測試范圍以內(nèi)的像素點,并比對第一像素點的rgb值和第二像素點的rgb值,其中,所述第一像素點為打印結(jié)果圖片在其測試范圍以內(nèi)的像素點,所述第二像素點為標準模版圖片在其測試范圍以內(nèi)的像素點,所述第二像素點與所述第一像素點對應;
第二判斷單元,用于判斷所述第一像素點的rgb值和所述第二像素點的rgb值是否相異;
第二測試結(jié)果處理單元,用于如果所述第一像素點的rgb值和所述第二像素點的rgb值相異,則在所述打印結(jié)果圖片上標記所述第一像素點,和/或在所述標準模版圖片上標記所述第二像素點,和/或統(tǒng)計所述第一像素點的個數(shù)。
可選的,所述模板測試范圍確定單元,包括:
第一邊界像素點獲取子單元,用于獲取所述打印結(jié)果圖片的測試范圍的第一邊界像素點,所述第一邊界像素點至少包括第一邊界的所有頂點像素點,所述第一邊界為所述打印結(jié)果圖片的測試范圍的邊界;
邊界映射子單元,用于將所述第一邊界映射到所述標準模版圖片,得到在所述標準模板圖片的映射邊界;
第二邊界像素點獲取子單元,用于獲取第二邊界像素點,所述第二邊界像素點至少包括所述映射邊界的所有頂點像素點,所述第二邊界像素點與所述第一邊界像素點對應,且所述第二邊界像素點的個數(shù)等于所述第一邊界像素點的個數(shù);
邊界像素點比對子單元,用于比對所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值;
測試范圍確定子單元,用于如果所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值全部相同,則確定所述標準模版圖片的測試范圍成功,以所述映射邊界 以內(nèi)的范圍為所述標準模板圖片的測試范圍,否則,確定所述標準模版圖片的測試范圍失敗。
可選的,所述像素點比對單元,以所述打印結(jié)果圖片在其測試范圍內(nèi)的所有像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)的所有像素點為所述第二像素點。
可選的,所述像素點比對單元,以所述打印結(jié)果圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第二像素點。。
相應于本公開實施例的第二方面,根據(jù)本公開實施例的第四方面,提供另一種自動化打印測試裝置,包括:
打印結(jié)果數(shù)據(jù)獲取單元,用于調(diào)用被測試的打印程序接口,讀取基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),所述基礎數(shù)據(jù)庫用于存儲打印測試數(shù)據(jù)并預先建立;
打印單元,用于根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片;
標準模版圖片獲取單元,用于根據(jù)所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),從標準模版圖片庫中獲取對應的標準模版圖片,其中,所述標準模版圖片庫中的標準模版圖片根據(jù)所述基礎數(shù)據(jù)庫中的數(shù)據(jù)生成,并且所述標準模版圖片與所述基礎數(shù)據(jù)庫中的數(shù)據(jù)相對應;以及
比對測試單元,用于將所述打印結(jié)果圖片與所述標準模版圖片進行比對,得到打印測試結(jié)果。
其中,所述基礎數(shù)據(jù)庫預先根據(jù)測試目的,從不同類型的打印測試單據(jù)中提取公用數(shù)據(jù)作為基礎數(shù)據(jù)而建立。
可選的,所述比對測試單元,包括:
模板測試范圍確定模塊,用于根據(jù)所述打印結(jié)果圖片的測試范圍,確定所述標準模板圖片的測試范圍;
像素點比對模塊,用于如果確定所述標準模版圖片的測試范圍成功,則遍歷所述打印結(jié)果圖片在其測試范圍以內(nèi)的像素點以及所述標準模板圖片在其測試范圍以內(nèi)的像素點,并比對第一像素點的rgb值和第二像素點的rgb值,其中,所述第一像素點為打印結(jié)果圖片在其測試范圍以內(nèi)的像素點,所述第二像素點為標準模版圖片在其測試范圍以內(nèi)的像素點,所述第二像素點與所述第一像素點對應;
第二判斷模塊,用于判斷所述第一像素點的rgb值和所述第二像素點的rgb值是否相異;
第二測試結(jié)果處理模塊,如果所述第一像素點的rgb值和所述第二像素點的rgb值相異,則在所述打印結(jié)果圖片上標記所述第一像素點和/或在所述標準模版圖片上標記所述第二像素點,和/或統(tǒng)計所述第一像素點的個數(shù)。
可選的,所述模板測試范圍確定模塊,包括:
第一邊界像素點獲取子模塊,用于獲取所述打印結(jié)果圖片的測試范圍的第一邊界像素點,所述第一邊界像素點至少包括第一邊界的所有頂點像素點,所述第一邊界為所述打印結(jié)果圖片的測試范圍的邊界;
邊界映射子模塊,用于將所述第一邊界映射到所述標準模版圖片,得到在所述標準模板圖片的映射邊界;
第二邊界像素點獲取子模塊,用于獲取第二邊界像素點,所述第二邊界像素點至少包括所述映射邊界的所有頂點像素點,所述第二邊界像素點與所述第一邊界像素點對應,且所述第二邊界像素點的個數(shù)等于所述第一邊界像素點的個數(shù);
邊界像素點比對子模塊,用于比對所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值;
測試范圍確定子模塊,用于如果所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值全部相同,則確定所述標準模版圖片的測試范圍成功,以所述映射邊界以內(nèi)的范圍為所述標準模板圖片的測試范圍,否則,確定所述標準模版圖片的測試范圍失敗。
可選的,所述像素點比對模塊,以所述打印結(jié)果圖片在其測試范圍內(nèi)的所有像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)的所有像素點為所述第二像素點。
可選的,所述像素點比對模塊,以所述打印結(jié)果圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第二像素點。
本公開實施例提供的技術方案,先建立基礎數(shù)據(jù)庫,所述基礎數(shù)據(jù)庫用于存儲打印測試數(shù)據(jù);然后調(diào)用被測試的打印程序接口,讀取所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),得到打印結(jié)果數(shù)據(jù);比對打印結(jié)果數(shù)據(jù)中的字段和對應的基礎數(shù)據(jù)庫中的字段;判斷打印結(jié)果數(shù)據(jù)中的字段和對應的基礎數(shù)據(jù)庫中的字段是否相異;如果相異,則說明打印程序接口存在數(shù)據(jù)讀取錯誤,對發(fā)生錯誤的字段進行記錄,以利于用戶了解錯誤所在。另外還根據(jù)所述基礎數(shù)據(jù)庫中的數(shù)據(jù)制訂標準模版圖片,所述標準模版圖片與基礎數(shù)據(jù)庫中的數(shù)據(jù)對應,根據(jù)所述標準模版圖片建立標準模版圖片庫,然后根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片,并根據(jù)所述打印結(jié)果圖片獲取對應的標準模版圖片。在根 據(jù)所述打印結(jié)果圖片的測試范圍,成功確定所述標準模板圖片的測試范圍后,遍歷所述打印結(jié)果圖片在其測試范圍以內(nèi)的像素點以及所述標準模板圖片在其測試范圍以內(nèi)的像素點,通過比對第一像素點的rgb值和對應的第二像素點的rgb值來評判打印結(jié)果圖片和標準模版圖片之間的差異,其中,所述第一像素點為打印結(jié)果圖片在其測試范圍以內(nèi)的像素點,所述第二像素點為標準模版圖片在其測試范圍以內(nèi)的像素點。如果所述第一像素點的rgb值和所述第二像素點的rgb值相異,則打印結(jié)果圖片與標準模版圖片間存在差異,可以在所述打印結(jié)果圖片上標記所述第一像素點和/或在所述標準模版圖片上標記所述第二像素點,以直觀地觀察具體打印結(jié)果圖片和標準模版圖片不同的地方,還可以統(tǒng)計所述第一像素點的個數(shù),以了解打印結(jié)果圖片與標準模版圖片有多少不同之處。本公開實施例提供的技術方案不依賴人工,可以由程序自動完成打印測試,不僅提高打印測試的效率,逐像素比對的方式以及程序自動化的高準確度,也極大降低了打印測試的測試遺漏。
應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
為了更清楚地說明本公開實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領域普通技術人員而言,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本公開一示例性實施例示出的一種自動化打印測試方法的流程示意圖。
圖2為本公開一示例性實施例示出的另一種自動化打印測試方法的流程示意圖。
圖3為本公開一示例性實施例示出的又一種自動化打印測試方法的流程示意圖。
圖4為打印測試結(jié)果標記示例圖。
圖5為本公開一示例性實施例示出的一種自動化打印測試裝置的框圖。
圖6為本公開一示例性實施例示出的另一種自動化打印測試裝置的框圖。
圖7為本公開一示例性實施例示出的又一種自動化打印測試裝置的框圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
為了全面理解本公開,在以下詳細描述中提到了眾多具體的細節(jié),但是本領域技術人員應該理解,本公開可以無需這些具體細節(jié)而實現(xiàn)。在其他實施例中,不詳細描述公知的方法、過程、組件和電路,以免不必要地導致實施例模糊。
圖1為本公開一示例性實施例示出的一種自動化打印測試方法的流程示意圖,如圖1所示,所述方法包括:
步驟s101,調(diào)用被測試的打印程序接口,讀取基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),得到打印結(jié)果數(shù)據(jù),所述基礎數(shù)據(jù)庫用于存儲打印測試數(shù)據(jù)并預先建立;
步驟s102,比對第一字段的值與第二字段的值,其中,所述第一字段為所述打印結(jié)果數(shù)據(jù)中的字段,所述第二字段為所述基礎數(shù)據(jù)庫中的字段,且所述第一字段與所述第二字段對應;
步驟s103,判斷所述第一字段的值與所述第二字段的值是否相異;
步驟s104,如果所述第一字段的值與所述第二字段的值相異,記錄所述第一字段。
打印測試主要在于考察被測試的打印程序接口是否正常。打印程序運行中會出現(xiàn)一種情況:打印測試數(shù)據(jù)中存在兩個不同屬性的字段,但兩者的數(shù)值在某種情況下恰好相同,例如,“商品總價”字段和“商品單價”字段,在一件商品時數(shù)值相同,但在多件商品時不同,打印程序接口在讀取打印數(shù)據(jù)時,讀取了錯誤字段的數(shù)值,例如在“商品總價”字段位置,讀取了“商品單價”字段的數(shù)值,由于在一件商品時兩者數(shù)值相同,打印出來的結(jié)果圖片和參考圖片仍然是一樣的,無法反映錯誤,因此要檢驗出打印程序接口讀取數(shù)據(jù)是否有誤。
打印測試前,根據(jù)測試目的,準備不同類型的打印測試單據(jù),并提取打印測試單據(jù)的公用數(shù)據(jù),作為基礎數(shù)據(jù),存入基礎數(shù)據(jù)庫。打印測試時,調(diào)用被測試的打印程序接口,讀取所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),得到打印結(jié)果數(shù)據(jù)。在一種實施方式中,直接以所讀取的所述打印測試數(shù)據(jù)為打印結(jié)果數(shù)據(jù),也就是直接以打印程序接口返回的數(shù)據(jù)為打印結(jié)果數(shù)據(jù);在另一種實施方式中,根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片,然后根據(jù)所述打印結(jié)果圖片提取打印結(jié)果數(shù)據(jù),也就是讀取將基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),作為被測試打印程序的輸入進行打印,所述打印為虛擬打印,例如使用adobe虛擬打印技術進行打印,得到打印結(jié)果圖片并保存,所述打印結(jié)果圖片可以為pdf格式,也可以轉(zhuǎn)換為jpg等其他圖片格式,然后提取打印結(jié)果圖片的打印結(jié)果數(shù)據(jù),使用adobe虛擬打印技術進行打印,得到打印結(jié)果圖片,然后將所述打印結(jié)果圖片轉(zhuǎn)換為txt格式等數(shù)據(jù)文件格式,得到打印結(jié)果數(shù)據(jù)。上述的后一種實施方式,在得到打印結(jié)果圖片后再提取打印結(jié)果數(shù)據(jù),雖然環(huán)節(jié)較前一種實施方式多,但打印結(jié)果數(shù)據(jù)更能直接反映實際打印結(jié)果的情況。
得到打印結(jié)果數(shù)據(jù)后,如果已經(jīng)與基礎數(shù)據(jù)庫中的數(shù)據(jù)格式已經(jīng)相同,則不必對打印結(jié)果數(shù)據(jù)進行格式轉(zhuǎn)換,如果與基礎數(shù)據(jù)庫中的數(shù)據(jù)格式不同,則對打印結(jié)果數(shù)據(jù)進行格式轉(zhuǎn)換。打印結(jié)果數(shù)據(jù)和基礎數(shù)據(jù)庫中數(shù)據(jù)的格式通常為jason格式,為便于對比,可以將jason格式的數(shù)據(jù)轉(zhuǎn)換為jason對象。然后以所述打印結(jié)果數(shù)據(jù)中的字段為第一字段,以所述標準模板圖片數(shù)據(jù)中的字段為第二字段,比對所述第一字段的值和與所述第一字段對應的第二字段的值,所述第一字段與所述第二字段對應指所述第一字段與所述第二字段的字段名稱(或標識)相同。
比對所述第一字段的值和所述第二字段的值,判斷所述第一字段的值與所述第二字段的值是否相異,如果所述第一字段的值與所述第二字段的值相異,則記錄所述第一字段。最后,以所記錄的第一字段為數(shù)據(jù)檢驗結(jié)果,使用戶了解打印程序后端接口讀取哪些字段的值出錯。如果所述第一字段的值與所述第二字段的值全部相同,則打印程序后端接口讀取數(shù)據(jù)正確,不存在問題。
圖2為本公開一示例性實施例示出的另一種自動化打印測試方法的流程示意圖,如圖2所示,所述方法包括:
步驟s201,調(diào)用被測試的打印程序接口,讀取基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),得到打印結(jié)果數(shù)據(jù),所述基礎數(shù)據(jù)庫用于存儲打印測試數(shù)據(jù)并預先建立;
步驟s202,比對第一字段的值與第二字段的值,其中,所述第一字段為所述打印結(jié)果數(shù)據(jù)中的字段,所述第二字段為所述基礎數(shù)據(jù)庫中的字段,且所述第一字段與所述第二字段對應;
步驟s203,判斷所述第一字段的值與所述第二字段的值是否相異;
步驟s204,如果所述第一字段的值與所述第二字段的值相異,記錄所述第一字段。
其中步驟s201至s204分別與步驟s101至s104相同。
步驟s205,根據(jù)所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),從標準模版圖片庫中獲取對應的標準模板圖片,其中,所述標準模版圖片庫中的標準模版圖片根據(jù)所述基礎數(shù)據(jù)庫中的數(shù)據(jù)生成,并且所述標準模版圖片與所述基礎數(shù)據(jù)庫中的數(shù)據(jù)相對應。
步驟s206,根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片。其中,將所述打印測試數(shù)據(jù)作為被測試打印程序的輸入進行打印,所述打印為虛擬打印,例如使用adobe虛擬打印技術進行打印,得到打印結(jié)果圖片并保存。
其中,步驟s205與步驟s206的次序可以調(diào)換,也可以先根據(jù)根據(jù)所述打印測試數(shù)據(jù)打印得到打印結(jié)果圖片,再根據(jù)所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),從標準模版圖片庫中獲取對應的標準模版圖片。
其中,根據(jù)基礎數(shù)據(jù)庫中的數(shù)據(jù)制訂標準模版圖片,所述標準模版圖片與基礎數(shù)據(jù)庫中的數(shù)據(jù)對應,并將標準模版圖片存入標準模版圖片庫中。標準模版圖片庫中的每一個標準模版圖片都有唯一的標識符,所述標識符可以為“單據(jù)類型+模板名稱”字符串,所述單據(jù)類型為模板對應的單據(jù)類型。測試時,根據(jù)所述打印測試數(shù)據(jù)在標準模版圖片庫中找到對應的標準模版圖片。標準模版圖片和打印結(jié)果圖片可以為pdf格式,也可以轉(zhuǎn)換為jpg等其他圖片格式。
步驟s207,根據(jù)所述打印結(jié)果圖片的測試范圍,確定所述標準模板圖片的測試范圍。
打印結(jié)果圖片的測試范圍事先由測試人員確定,可以為整個打印結(jié)果圖片,或者為打印結(jié)果圖片除去白邊后的范圍,也可以為根據(jù)測試需要劃定的打印結(jié)果圖片的局部區(qū)域,例如,打印結(jié)果圖片為快遞單據(jù),僅以單據(jù)的logo(徽標)區(qū)和條形碼區(qū)為測試范圍。打印結(jié)果圖片的測試范圍使用像素坐標矩陣或像素坐標函數(shù)表示。表示測試范圍的像素坐標矩陣中至少包括打印結(jié)果圖片的測試范圍的邊界的所有頂點像素坐標。對于矩形測試范圍,可以使用矩形測試范圍邊界的四個頂點像素坐標(即矩形測試范圍的四角像素坐標)構(gòu)成像素坐標矩陣來表示測試范圍,例如測試范圍m=[(100,100)(100,1010);(1010,100)(1010,1010)],其中(100,100)為左上頂點像素坐標,(100,1010)為右上頂點像素坐標,(1010,100)為左下頂點像素坐標,(1010,1010)為右下頂點像素坐標,所確定的邊界即上述四個像素頂點確定的矩形。如果測試范圍為不規(guī)則形狀,則使用以頂點像素坐標為特征點的像素坐標函數(shù)來描述測試范圍的邊界,測試范圍的形狀不同,像素坐標函數(shù)也不同。相比矩形測試范圍,不規(guī)則形狀測試范圍的邊界描述復雜,而且不規(guī)則形狀測試范圍可以用矩形測試范圍來覆蓋,另外常規(guī)打印單據(jù)都是由矩形區(qū)域構(gòu)成,因此測試范圍優(yōu)選為描述方式簡單的矩形測試范圍。需要說明的是,測試范圍的描述可視為測試范圍的邊界的描述。
測試人員預先確定打印結(jié)果圖片的測試范圍?;陬A先確定的打印結(jié)果圖片的測試范圍,所述根據(jù)所述打印結(jié)果圖片的測試范圍,確定所述標準模板圖片的測試范圍,可以包括:
步驟a1,獲取所述打印結(jié)果圖片的測試范圍的第一邊界像素點,所述第一邊界像素點至少包括第一邊界的所有頂點像素點,所述第一邊界為所述打印結(jié)果圖片的測試范圍的邊界。
其中,從打印結(jié)果圖片的測試范圍的描述,例如像素點坐標矩陣或者像素點坐標函數(shù),可以得到所述第一邊界像素點。所述第一邊界像素點可以由測試人員通過輸入界面直接輸入測試程序,相應地測試程序從所述輸入界面獲取所述第一邊界像素點。所述第一邊界像素點也可以保存在數(shù)據(jù)庫中,并設置與打印結(jié)果圖片對應的標識,例如標識中包括打印結(jié)果圖片名稱,測試程序根據(jù)打印結(jié)果圖片名稱從數(shù)據(jù)庫讀取對應的第一邊界 像素點。測試范圍的邊界的形狀由邊界的頂點決定,故邊界的頂點為邊界的特征點,因此對于第一邊界而言,所述第一邊界像素點至少包括第一邊界的所有頂點像素點。需要說明的是,如果打印結(jié)果圖片的測試范圍的邊界為圓形,也就是第一邊界為圓形,則可以以第一邊界上相對于圓心對稱的多個點,例如相對于圓心對稱的四點或六點作為第一邊界的頂點像素點,也就是作為第一邊界像素點,這是因為第一邊界像素點和第二邊界像素點用于進行比對來驗證標準模板圖片的映射邊界是否正確,而非使用第一邊界像素點和第二邊界像素點來描述邊界,取第一邊界和第二邊界上部分具有特征的點即可,圓形邊界具有對稱性,取其上現(xiàn)對于圓心對稱的多個點可以用以驗證圓形的映射邊界是否正確。對于圓形邊界,也可以結(jié)合圓形邊界的中心點和圓形邊界上的對稱的多個點來驗證圓形的映射邊界,所述圓形邊界的中心點也可以從測試范圍的像素點函數(shù)描述中獲取。
步驟a2,將所述第一邊界映射到所述標準模版圖片,得到在所述標準模板圖片的映射邊界。
其中,將所述第一邊界映射到所述標準模板圖片,可以使用預先設置的映射函數(shù),將打印結(jié)果圖片的測試范圍的邊界的描述,映射為標準模板圖片的邊界的描述,從而得到所述映射邊界。所述映射函數(shù)可以比例函數(shù)1,也就是對標準模板圖片使用與打印結(jié)果圖片相同的測試范圍的邊界的描述,例如相同的像素點坐標矩陣描述或者相同的像素點函數(shù)描述,具體地,例如打印結(jié)果圖片的測試范圍的邊界的描述為b1=[(100,100)(100,1010);(1010,100)(1010,1010)],則標準模板圖片的測試范圍的邊界的描述,也就是映射邊界的描述,為b2=b1×1=[(100,100)(100,1010);(1010,100)(1010,1010)],其中(100,100)為邊界左上頂點像素坐標,(100,1010)為邊界右上頂點像素坐標,(1010,100)為邊界左下頂點像素坐標,(1010,1010)為邊界右下頂點像素坐標,即標準模板圖片的映射邊界為上述四個像素頂點確定的矩形。所述映射函數(shù)也可以根據(jù)打印邊距或者打印機的固有誤差設置為平移函數(shù),例如,為方便裝訂,打印邊距為左邊距100個像素,也就是打印內(nèi)容在打印結(jié)果圖片中相比在標準模板圖片中整體向右平移100個像素,或者打印機固有誤差會導致打印內(nèi)容在打印結(jié)果圖片中相比在標準模板圖片中整體向右平移100個像素,相應的,映射函數(shù)為將打印結(jié)果圖片測試范圍邊界的像素坐標矩陣或者像素點函數(shù)向左平移100個像素,得到標準模板圖片測試范圍邊界的描述,從而得到映射邊界。
將所述第一邊界映射到所述標準模板圖片,還可以使用圖像處理程序?qū)⑺龃蛴〗Y(jié)果圖的測試范圍邊界投影到所述標準模板圖片中,也就是將所述打印結(jié)果圖片的測試范圍邊界的描述中的像素點坐標轉(zhuǎn)換為所述標準模板圖片中的像素點坐標,從而得到所述映射邊界的描述,也就得到了所述映射邊界。
步驟a3,獲取第二邊界像素點,所述第二邊界像素點至少包括所述映射邊界的所有頂點像素點,所述第二邊界像素點與所述第一邊界像素點對應,且所述第二邊界像素點 的個數(shù)等于所述第一邊界像素點的個數(shù)。
其中,得到標準模板圖片的測試范圍的映射邊界后,獲取與所述第一邊界像素點對應的第二邊界像素點,所述第二邊界像素點為所述映射邊界上的像素點,至少包括包括所述映射邊界的所有頂點像素點。根據(jù)第一邊界像素點的坐標,得到對應的在標準模板圖片中的第二邊界像素點的坐標,從而可以得到第二邊界像素點,具體地,如果使用映射函數(shù)將所述第一邊界映射到所述標準模板圖片,若映射函數(shù)為1,則第二邊界像素點的坐標和第一邊界像素點的坐標相同,若映射函數(shù)為平移函數(shù),則將第一邊界像素點的坐標以相同的平移量平移后得到第二邊界像素點的坐標;如果是將打印結(jié)果圖的測試范圍邊界投影到標準模板圖片中,則使用投影時的坐標變換方式將第二邊界像素點的坐標變換得到第一邊界像素點的坐標。第二邊界像素點的坐標由第一邊界像素點的坐標決定,兩者相對應且個數(shù)相等。另一種獲取第二邊界像素點的方法,是根據(jù)第一邊界像素點的個數(shù)以及設定的第一邊界像素點排列順序(例如矩形測試范圍邊界,從左上頂點開始順時針排列至左下頂點),依與所述第一邊界像素點排列順序相同的順序,遍歷所述標準模版圖片的像素點,根據(jù)所述映射邊界的描述,提取所述映射邊界中與所述第一邊界像素點特征(例如為頂點或?qū)ΨQ點)相同的像素點,得到第二邊界像素點,但這種方式相對于前述方式而言,精度較低。
步驟a4,比對所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值;
步驟a5,如果所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值全部相同,則確定所述標準模版圖片的測試范圍成功,以所述映射邊界以內(nèi)的范圍為所述標準模板圖片的測試范圍,否則,確定所述標準模版圖片的測試范圍失敗,結(jié)束打印測試。
其中,得到第一邊界像素點和第二邊界像素點后,比對兩者的rgb值,如果兩者的rgb值全部相同,則第二邊界像素點與第一邊界像素點完全吻合,說明得到的所述標準模板圖片的映射邊界是正確的,也就是確定所述標準模版圖片的測試范圍成功,以所述映射邊界以內(nèi)的范圍為所述標準模板圖片的測試范圍。如果第二邊界像素點和第一邊界像素點之間存在rgb值不同的像素點,則第二邊界像素點與第一邊界像素點不吻合,說明得到的所述標準模板圖片的映射邊界是錯誤的,也就是確定所述標準模版圖片的測試范圍失敗。
步驟s208,如果確定所述標準模版圖片的測試范圍成功,則遍歷所述打印結(jié)果圖片在其測試范圍以內(nèi)的像素點以及所述標準模板圖片在其測試范圍以內(nèi)的像素點,并比對第一像素點的rgb值和第二像素點的rgb值,其中,所述第一像素點為打印結(jié)果圖片在其測試范圍以內(nèi)的像素點,所述第二像素點為標準模版圖片在其測試范圍以內(nèi)的像素點,所述第二像素點與所述第一像素點對應;
步驟s209,判斷所述第一像素點的rgb值和所述第二像素點的rgb值是否相異。
其中,確定所述標準模版圖片的測試范圍成功后,遍歷所述打印結(jié)果圖片在其測試范圍以內(nèi)的像素點以及所述標準模板圖片在其測試范圍以內(nèi)的像素點,以打印結(jié)果圖片在其測試范圍以內(nèi)的像素點為第一像素點,以標準模版圖片在其測試范圍以內(nèi)的像素點為第二像素點,比對第一像素點的rgb值和第二像素點的rgb值,判斷所述第一像素點的rgb值和所述第二像素點的rgb值是否相異。其中,可以以所述打印結(jié)果圖片在其測試范圍內(nèi)的所有像素點為第一像素點,并以所述標準模版圖片在其測試范圍內(nèi)的所有像素點為第二像素點,這種情況下,逐一遍歷第一像素點和第二像素點,并逐一比對第一像素點的rgb值和第二像素點的rgb值,這種方式由于測試范圍內(nèi)的每個像素點都進行比較,因此精度高,但工作量大,耗時且資源占用大。其中,也可以以所述打印結(jié)果圖片在其測試范圍內(nèi)每行像素的起始像素點為第一像素點,并以所述標準模版圖片在其測試范圍內(nèi)每行像素的起始像素點為第二像素點,以行為單位,遍歷打印結(jié)果圖片和標注模板圖片每行像素的起始像素點(即第一像素點和第二像素點),并逐行比對每行的第一像素點的rgb值和第二像素點的rgb值,這種方式只比較測試范圍內(nèi)每行起始的像素點,工作量大大減小,快速且節(jié)省資源,但精度較低。
步驟s2010,如果所述第一像素點的rgb值和所述第二像素點的rgb值相異,則在所述打印結(jié)果圖片上標記所述第一像素點和/或在所述標準模版圖片上標記所述第二像素點,和/或統(tǒng)計所述第一像素點的個數(shù)。
其中,如果所述第一像素點的rgb值和所述第二像素點的rgb值全部相同,則打印結(jié)果圖片和標準模板圖片在測試范圍內(nèi)吻合,打印程序正常。如果比對中,所述第一像素點的rgb值和所述第二像素點的rgb值相異,也就是第二像素點和第一像素點之間存在rgb值不同的像素點,則打印結(jié)果圖片與標準模板圖片不吻合。為標示打印結(jié)果圖片中哪些部分與標準模板圖片不同,在比對中,如果第一像素點的rgb值和第二像素點的rgb值相異,則可以在所述打印結(jié)果圖片上標記該第一像素點,便于用戶查看打印結(jié)果圖片中與標準模板圖片不同的地方;也可以同時在所述標準模板圖片上標記該第二像素點,更有利于用戶清楚地查看打印結(jié)果圖片與標準模板圖片彼此之間的差異;也可以只在所述標準模板圖片上標記該第二像素點,這樣用戶需自行依據(jù)標準模版圖片上與打印結(jié)果圖片上不同的地方,在打印結(jié)果圖片上大致找到哪些部分有問題。需要說明的是,上述的標記為可視的標記,由于像素點通常很小,為使標記可視,所述標記并非僅標記于第一像素點或第二像素點之上,而是可以為涵蓋第一像素點或第二像素點的標記。
圖3為打印測試結(jié)果標記示例圖。圖3中,以快遞單據(jù)為例,左邊為標準模板圖片,右邊為打印結(jié)果圖片,以橢圓形為標記,標記出打印測試后標準模板圖片和打印結(jié)果圖 片之間存在差異之處,第一個差異處是打印結(jié)果圖片收貨地址信息中缺少區(qū)名稱,第二個差異處是打印結(jié)果圖片中代收貨款沒有小數(shù)。打印測試后標準模板圖片和打印結(jié)果圖片之間的差異之處,也就是rgb值不同的第二像素點和第一像素點。
除在打印結(jié)果圖片和標準模板圖片上標記兩者中rgb值不同的像素點外,還可以統(tǒng)計打印結(jié)果圖片中rgb值與標準模板圖片中對應的第二像素點的rgb值不同的第一像素點,用戶通過該第一像素點的統(tǒng)計情況可以清楚打印結(jié)果圖片和標準模板圖片有多少不同之處。如果用戶只需了解打印結(jié)果圖片和標準模板圖片有多少不同之處,則可以不在打印結(jié)果圖片和標準模板圖片上標記兩者中rgb值不同的像素點,只統(tǒng)計打印結(jié)果圖片中rgb值與標準模板圖片中對應的第二像素點的rgb值不同的第一像素點。
以上步驟s201至步驟s204為數(shù)據(jù)校驗,s205至步驟s2010為樣式校驗,通過比對打印結(jié)果圖片和標準模板圖片,檢驗打印程序本身是否正常。需要說明的是,步驟s201至s204作為整體,與步驟s205至步驟s2010作為整體的步驟可以并列執(zhí)行,也可以順序執(zhí)行,圖2中以虛線來表示上述兩個整體步驟的順序執(zhí)行關系,也就是數(shù)據(jù)校驗步驟和樣式校驗步驟之間的順序執(zhí)行關系,以表示順序執(zhí)行關系非唯一。
本公開諸實施例提供的自動打印測試方法,調(diào)用被測試的打印程序接口,讀取所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),得到打印結(jié)果數(shù)據(jù),通過比對所述打印結(jié)果數(shù)據(jù)中的字段和所述基礎數(shù)據(jù)庫中的字段,進行數(shù)據(jù)校驗如果所述打印結(jié)果數(shù)據(jù)中的字段的值與所述基礎數(shù)據(jù)庫中的字段的值相異,則說明打印程序接口存在數(shù)據(jù)讀取錯誤,對發(fā)生錯誤的字段進行記錄,以利于用戶排查。除數(shù)據(jù)校驗外,本公開實施例還提供了樣式校驗方法,先根據(jù)所述基礎數(shù)據(jù)庫中的數(shù)據(jù)制訂標準模版圖片,建立標準模版圖片庫,然后根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片,并根據(jù)所述打印結(jié)果圖片獲取對應的標準模版圖片。然后在確定所述標準模板圖片的測試范圍成功后,遍歷并比對所述打印結(jié)果圖片在其測試范圍以內(nèi)的像素點的rgb值以及所述標準模板圖片在其測試范圍以內(nèi)的像素點的rgb值,來評判打印結(jié)果圖片和標準模版圖片之間的差異。如果打印結(jié)果圖片在其測試范圍以內(nèi)存在rgb值與標準模板圖片在其測試范圍以內(nèi)的像素點的rgb值不同的像素點,則打印結(jié)果圖片與標準模版圖片不吻合,打印程序存在問題,可以在打印結(jié)果圖片和/或標準模板圖片上標記出彼此對應但rgb值不同的像素點,方便用戶直觀地觀察打印結(jié)果圖片和標準模版圖片不同的地方,還可以統(tǒng)計打印結(jié)果圖片中與標準模板圖片中存在rgb值差異的像素點的個數(shù),以方便用戶了解打印結(jié)果圖片與標準模版圖片有多少不同之處。本公開實施例提供的自動打印測試方法不依賴人工,由程序自動完成打印測試,不僅提高打印測試的效率,也極大提高了打印測試的準確度。
通過以上的諸個方法實施例的描述,所屬領域的技術人員可以清楚地了解到本公開可借助軟件方式實現(xiàn),或者通過軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以 通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本公開的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,并存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺智能設備執(zhí)行本公開各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:只讀存儲器(rom)、隨機存取存儲器(ram)、磁碟或者光盤等各種可以存儲數(shù)據(jù)和程序代碼的介質(zhì)。
圖4為本公開一示例性實施例示出的又一種自動化打印測試方法的流程示意圖,如圖4所示,所述方法包括:
步驟s401,調(diào)用被測試的打印程序接口,讀取基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),得到打印結(jié)果數(shù)據(jù),所述基礎數(shù)據(jù)庫用于存儲打印測試數(shù)據(jù)并預先建立;
步驟s402,根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片;
步驟s403,根據(jù)所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),從標準模版圖片庫中獲取對應的標準模版圖片,所述標準模版圖片庫中的標準模版圖片根據(jù)所述基礎數(shù)據(jù)庫中的數(shù)據(jù)生成,并且所述標準模版圖片與所述基礎數(shù)據(jù)庫中的數(shù)據(jù)相對應;
步驟s404,將所述打印結(jié)果圖片與所述標準模版圖片進行比對,得到打印測試結(jié)果。
其中,步驟s401與步驟s101和步驟s201相同,步驟s402與步驟s206相同,步驟s403與步驟s205相同。
其中,步驟s404,可以包括:
步驟b1,根據(jù)所述打印結(jié)果圖片的測試范圍,確定所述標準模板圖片的測試范圍;
步驟b2,如果確定所述標準模版圖片的測試范圍成功,則遍歷所述打印結(jié)果圖片在其測試范圍以內(nèi)的像素點以及所述標準模板圖片在其測試范圍以內(nèi)的像素點,并比對第一像素點的rgb值和第二像素點的rgb值,其中,所述第一像素點為打印結(jié)果圖片在其測試范圍以內(nèi)的像素點,所述第二像素點為標準模版圖片在其測試范圍以內(nèi)的像素點,所述第二像素點與所述第一像素點對應;
步驟b3,判斷所述第一像素點的rgb值和所述第二像素點的rgb值是否相異;
步驟b4,如果所述第一像素點的rgb值和所述第二像素點的rgb值相異,則在所述打印結(jié)果圖片上標記所述第一像素點和/或在所述標準模版圖片上標記所述第二像素點,和/或統(tǒng)計所述第一像素點的個數(shù)。
步驟b1至步驟b4可以參考步驟s207至步驟s2010。其中,步驟b1,即所述根據(jù)所述打印結(jié)果圖片的測試范圍,確定所述標準模板圖片的測試范圍,可以包括:
步驟c1,獲取所述打印結(jié)果圖片的測試范圍的第一邊界像素點,所述第一邊界像素 點至少包括第一邊界的所有頂點像素點,所述第一邊界為所述打印結(jié)果圖片的測試范圍的邊界;
步驟c2,將所述第一邊界映射到所述標準模版圖片,得到在所述標準模板圖片的映射邊界;
步驟c3,獲取第二邊界像素點,所述第二邊界像素點至少包括所述映射邊界的所有頂點像素點,所述第二邊界像素點與所述第一邊界像素點對應,且所述第二邊界像素點的個數(shù)等于所述第一邊界像素點的個數(shù);
步驟c4,比對所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值;
步驟c5,如果所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值全部相同,則確定所述標準模版圖片的測試范圍成功,以所述映射邊界以內(nèi)的范圍為所述標準模板圖片的測試范圍,否則,確定所述標準模版圖片的測試范圍失敗。
其中,步驟c1至步驟c5可以參考步驟a1至步驟a5。
其中,可以以所述打印結(jié)果圖片在其測試范圍內(nèi)的所有像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)的所有像素點為所述第二像素點,也可以以所述打印結(jié)果圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第二像素點。
步驟s404也可以使用人工進行比對,但人工方式效率低且易出錯,使用本中實施例提供的自動測試方式不僅效率高且能有效防止因漏看錯看造成的準確率降低。
圖5為本公開一示例性實施例示出的一種自動打印測試裝置的框圖。如圖5所示,所述裝置包括:
打印結(jié)果數(shù)據(jù)獲取單元u501,用于調(diào)用被測試的打印程序接口,讀取所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),得到打印結(jié)果數(shù)據(jù),所述基礎數(shù)據(jù)庫用于存儲打印測試數(shù)據(jù)并預先建立;
字段比對單元u502,用于比對第一字段的值與第二字段的值,其中,所述第一字段為所述打印結(jié)果數(shù)據(jù)中的字段,所述第二字段為所述基礎數(shù)據(jù)庫中的字段,且所述第一字段與所述第二字段對應;
第一判斷單元u503,用于判斷所述第一字段的值與所述第二字段的值是否相異;
第一測試結(jié)果處理單元u504,用于如果所述第一字段的值與所述第二字段的值相異,記錄所述第一字段。
其中,所述打印結(jié)果數(shù)據(jù)獲取單元u501,在一種實施方式中,可以直接以所讀取 的所述打印測試數(shù)據(jù)為打印結(jié)果數(shù)據(jù),也就是直接獲取打印程序接口讀取基礎庫時返回的數(shù)據(jù)。所述打印結(jié)果數(shù)據(jù)獲取單元,在另一種實施方式中,可以具體用于:
根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片;
根據(jù)所述打印結(jié)果圖片提取打印結(jié)果數(shù)據(jù)。
其中,打印數(shù)據(jù)獲取單元u501可以根據(jù)所述打印結(jié)果圖片提取打印結(jié)果數(shù)據(jù),可以將打印結(jié)果圖片轉(zhuǎn)換為txt等數(shù)據(jù)格式,從而得到打印結(jié)果數(shù)據(jù)。
打印數(shù)據(jù)獲取單元u501得到打印結(jié)果數(shù)據(jù)后,字段比對單元u502以所述打印結(jié)果數(shù)據(jù)中的字段為第一字段,以所述標準模板圖片數(shù)據(jù)中的字段為第二字段,比對所述第一字段的值和與所述第一字段對應的第二字段的值,所述第一字段與所述第二字段對應指所述第一字段與所述第二字段的字段名稱(或標識)相同。
通過字段比對單元u502的比對,第一判斷單元u503判斷所述第一字段的值與所述第二字段的值是否相異,如果所述第一字段的值與所述第二字段的值相異,則第一測試結(jié)果處理單元u504記錄所述第一字段,以所記錄的第一字段為數(shù)據(jù)檢驗結(jié)果,以方便用戶了解打印程序后端接口對哪些字段的值的讀取是錯誤的。如果所述第一字段的值與所述第二字段的值全部相同,則打印程序后端接口讀取數(shù)據(jù)正確。
圖6為本公開一示例性實施例示出的另一種自動打印測試裝置的框圖。如圖6所示,所述裝置包括:
打印結(jié)果數(shù)據(jù)獲取單元u601,用于調(diào)用被測試的打印程序接口,讀取所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),得到打印結(jié)果數(shù)據(jù),所述基礎數(shù)據(jù)庫用于存儲打印測試數(shù)據(jù)并預先建立;
字段比對單元u602,用于比對第一字段的值與第二字段的值,其中,所述第一字段為所述打印結(jié)果數(shù)據(jù)中的字段,所述第二字段為所述基礎數(shù)據(jù)庫中的字段,且所述第一字段與所述第二字段對應;
第一判斷單元u603,用于判斷所述第一字段的值與所述第二字段的值是否相異;
第一測試結(jié)果處理單元u604,用于如果所述第一字段的值與所述第二字段的值相異,記錄所述第一字段。
其中,u601至u604用于執(zhí)行數(shù)據(jù)檢驗,與u501至u504相同。
標準模版圖片獲取單元u605,用于根據(jù)所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),從標準模版圖片庫中獲取對應的標準模板圖片,其中,所述標準模版圖片庫中的標準模版圖片根據(jù)所述基礎數(shù)據(jù)庫中的數(shù)據(jù)生成,并且所述標準模版圖片與所述基礎數(shù)據(jù)庫中的數(shù)據(jù)相對應;
打印單元u606,用于根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片。
其中,標準模版圖片獲取單元u605和打印單元u606的連接順序可以互換。
模板測試范圍確定單元u607,用于根據(jù)所述打印結(jié)果圖片的測試范圍,確定所述標準模板圖片的測試范圍;
像素點比對單元u608,用于如果確定所述標準模版圖片的測試范圍成功,則遍歷所述打印結(jié)果圖片在其測試范圍以內(nèi)的像素點以及所述標準模板圖片在其測試范圍以內(nèi)的像素點,并比對第一像素點的rgb值和第二像素點的rgb值,其中,所述第一像素點為打印結(jié)果圖片在其測試范圍以內(nèi)的像素點,所述第二像素點為標準模版圖片在其測試范圍以內(nèi)的像素點,所述第二像素點與所述第一像素點對應;
第二判斷單元u609,用于判斷所述第一像素點的rgb值和所述第二像素點的rgb值是否相異;
第二測試結(jié)果處理單元u6010,用于如果所述第一像素點的rgb值和所述第二像素點的rgb值相異,則在所述打印結(jié)果圖片上標記所述第一像素點,和/或在所述標準模版圖片上標記所述第二像素點,和/或統(tǒng)計所述第一像素點的個數(shù)。
其中,u605至u6010用于執(zhí)行樣式檢驗。
其中,所述模板測試范圍確定單元u607,可以包括:
第一邊界像素點獲取子單元,用于獲取所述打印結(jié)果圖片的測試范圍的第一邊界像素點,所述第一邊界像素點至少包括第一邊界的所有頂點像素點,所述第一邊界為所述打印結(jié)果圖片的測試范圍的邊界;
邊界映射子單元,用于將所述第一邊界映射到所述標準模版圖片,得到在所述標準模板圖片的映射邊界;
第二邊界像素點獲取子單元,用于獲取第二邊界像素點,所述第二邊界像素點至少包括所述映射邊界的所有頂點像素點,所述第二邊界像素點與所述第一邊界像素點對應,且所述第二邊界像素點的個數(shù)等于所述第一邊界像素點的個數(shù);
邊界像素點比對子單元,用于比對所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值;
測試范圍確定子單元,用于如果所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值全部相同,則確定所述標準模版圖片的測試范圍成功,以所述映射邊界以內(nèi)的范圍為所述標準模板圖片的測試范圍,否則,確定所述標準模版圖片的測試范圍失敗。
其中,所述像素點比對單元u608,在一種實施方式中,以所述打印結(jié)果圖片在其測試范圍內(nèi)的所有像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)的所有像素點為所述第二像素點。在另一種實施方式中,所述像素點比對單元u608,以所述打印結(jié)果圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第二像素點。
其中,第二判斷單元u609通過像素點比對單元u608的比對,判斷第一像素點的rgb值和第二像素點的rgb值是否相異。如果判斷的結(jié)果是所述第一像素點的rgb值和所述第二像素點的rgb值全部相同,則打印結(jié)果圖片和標準模板圖片在測試范圍內(nèi)吻合,打印程序正常。如果判斷的結(jié)果是所述第一像素點的rgb值和所述第二像素點的rgb值相異,則打印結(jié)果圖片與標準模板圖片不吻合,存在打印錯誤的地方。如果第一像素點的rgb值和第二像素點的rgb值相異,則第二測試結(jié)果處理單元u6010可以在所述打印結(jié)果圖片上標記該第一像素點,便于用戶查看打印結(jié)果圖片中與標準模板圖片不同的地方;也可以同時在所述標準模板圖片上標記該第二像素點,更有利于用戶清楚地查看打印結(jié)果圖片與標準模板圖片彼此之間的差異;也可以只在所述標準模板圖片上標記該第二像素點,用戶自行依據(jù)標準模版圖片上與打印結(jié)果圖片上不同的地方,在打印結(jié)果圖片上大致找到哪些部分有問題。
第二測試結(jié)果處理單元u6010除在打印結(jié)果圖片和標準模板圖片上標記兩者中rgb值不同的像素點外,還可以統(tǒng)計打印結(jié)果圖片中rgb值與標準模板圖片中對應的第二像素點的rgb值不同的第一像素點,方便用戶直接查看打印結(jié)果圖片和標準模板圖片有多少不同之處。如果用戶只需了解打印結(jié)果圖片和標準模板圖片有多少不同之處,則可以只統(tǒng)計打印結(jié)果圖片中rgb值與標準模板圖片中對應的第二像素點的rgb值不同的第一像素點。
以上單元u601至u604為數(shù)據(jù)校驗執(zhí)行部分,單元u605至u6010為樣式校驗執(zhí)行部分,單元u601至u604作為整體的執(zhí)行部分,與單元u605至u6010作為整體的執(zhí)行部分可以并列執(zhí)行,也可以順序執(zhí)行,圖6中以虛線來表示上述數(shù)據(jù)校驗執(zhí)行部分和樣式校驗執(zhí)行部分之間的順序連接關系,以表示順序連接關系非唯一,上述兩個執(zhí)行部分也可以并列。
圖7為本公開一示例性實施例示出的又一種自動打印測試裝置的框圖。如圖7所示,所述裝置包括:
打印結(jié)果數(shù)據(jù)獲取單元u701,用于調(diào)用被測試的打印程序接口,讀取所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),得到打印結(jié)果數(shù)據(jù),所述基礎數(shù)據(jù)庫用于存儲打印測試數(shù)據(jù)并預先建立;
打印單元u702,用于根據(jù)所述打印測試數(shù)據(jù),打印得到打印結(jié)果圖片;
標準模版圖片獲取單元u703,用于根據(jù)所述基礎數(shù)據(jù)庫中的打印測試數(shù)據(jù),從標準模版圖片庫中獲取對應的標準模板圖片,其中,所述標準模版圖片庫中的標準模版圖片根據(jù)所述基礎數(shù)據(jù)庫中的數(shù)據(jù)生成,并且所述標準模版圖片與所述基礎數(shù)據(jù)庫中的數(shù)據(jù)相對應;
比對測試單元u704,用于將所述打印結(jié)果圖片與所述標準模版圖片進行比對,得到打印測試結(jié)果。
其中,所述比對測試單元,可以包括:
模板測試范圍確定模塊,用于根據(jù)所述打印結(jié)果圖片的測試范圍,確定所述標準模板圖片的測試范圍;
像素點比對模塊,用于如果確定所述標準模版圖片的測試范圍成功,則遍歷所述打印結(jié)果圖片在其測試范圍以內(nèi)的像素點以及所述標準模板圖片在其測試范圍以內(nèi)的像素點,并比對第一像素點的rgb值和第二像素點的rgb值,其中,所述第一像素點為打印結(jié)果圖片在其測試范圍以內(nèi)的像素點,所述第二像素點為標準模版圖片在其測試范圍以內(nèi)的像素點,所述第二像素點與所述第一像素點對應;
第二判斷模塊,用于判斷所述第一像素點的rgb值和所述第二像素點的rgb值是否相異;
第二測試結(jié)果處理模塊,用于如果所述第一像素點的rgb值和所述第二像素點的rgb值相異,則在所述打印結(jié)果圖片上標記所述第一像素點,和/或在所述標準模版圖片上標記所述第二像素點,和/或統(tǒng)計所述第一像素點的個數(shù)。
其中,所述模板測試范圍確定模塊,可以包括:
第一邊界像素點獲取子模塊,用于獲取所述打印結(jié)果圖片的測試范圍的第一邊界像素點,所述第一邊界像素點至少包括第一邊界的所有頂點像素點,所述第一邊界為所述打印結(jié)果圖片的測試范圍的邊界;
邊界映射子模塊,用于將所述第一邊界映射到所述標準模版圖片,得到在所述標準模板圖片的映射邊界;
第二邊界像素點獲取子模塊,用于獲取第二邊界像素點,所述第二邊界像素點至少包括所述映射邊界的所有頂點像素點,所述第二邊界像素點與所述第一邊界像素點對應,且所述第二邊界像素點的個數(shù)等于所述第一邊界像素點的個數(shù);
邊界像素點比對子模塊,用于比對所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值;
測試范圍確定子模塊,用于如果所述第一邊界像素點的rgb值和所述第二邊界像素點的rgb值全部相同,則確定所述標準模版圖片的測試范圍成功,以所述映射邊界以內(nèi)的范圍為所述標準模板圖片的測試范圍,否則,確定所述標準模版圖片的測試范圍失敗。
其中,所述像素點比對模塊,在一種實施方式中,以所述打印結(jié)果圖片在其測試范圍內(nèi)的所有像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)的所有像素點為所述第二像素點。在另一種實施方式中,所述像素點比對模塊,以所述打印結(jié)果圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第一像素點,以所述標準模版圖片在其測試范圍內(nèi)每行像素的起始像素點為所述第二像素點。
其中,第二判斷模塊通過像素點比對模塊的比對,判斷第一像素點的rgb值和第二像素點的rgb值是否相異。如果判斷的結(jié)果是所述第一像素點的rgb值和所述第二像素點的rgb值全部相同,則打印結(jié)果圖片和標準模板圖片在測試范圍內(nèi)吻合,打印程序正常。如果判斷的結(jié)果是所述第一像素點的rgb值和所述第二像素點的rgb值相異,則打印結(jié)果圖片與標準模板圖片不吻合,存在打印錯誤的地方。如果第一像素點的rgb值和第二像素點的rgb值相異,則第二測試結(jié)果處理模塊可以在所述打印結(jié)果圖片上標記該第一像素點,便于用戶查看打印結(jié)果圖片中與標準模板圖片不同的地方;也可以同時在所述標準模板圖片上標記該第二像素點,更有利于用戶清楚地查看打印結(jié)果圖片與標準模板圖片彼此之間的差異;也可以只在所述標準模板圖片上標記該第二像素點,用戶自行依據(jù)標準模版圖片上與打印結(jié)果圖片上不同的地方,在打印結(jié)果圖片上大致找到哪些部分有問題。
第二測試結(jié)果處理模塊除在打印結(jié)果圖片和標準模板圖片上標記兩者中rgb值不同的像素點外,還可以統(tǒng)計打印結(jié)果圖片中rgb值與標準模板圖片中對應的第二像素點的rgb值不同的第一像素點,方便用戶直接查看打印結(jié)果圖片和標準模板圖片有多少不同之處。如果用戶只需了解打印結(jié)果圖片和標準模板圖片有多少不同之處,則可以只統(tǒng)計打印結(jié)果圖片中rgb值與標準模板圖片中對應的第二像素點的rgb值不同的第一像素點。
為了描述的方便,描述以上裝置時以功能分為各種單元或模塊分別描述。當然,在實施本公開時可以把各單元或模塊的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置或系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的裝置及系統(tǒng)實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元或模塊顯 示的部件可以是或者也可以不是物理單元或模塊,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元或模塊來實現(xiàn)本實施例方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
需要說明的是,在本文中,諸如“第一”和“第二”等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者逆序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、裝置或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、裝置或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、裝置或者設備中還存在另外的相同要素。
以上所述僅是本公開的具體實施方式,使本領域技術人員能夠理解或?qū)崿F(xiàn)本公開。對這些實施例的多種修改對本領域的技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本公開的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本公開將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。