python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...
基于python單元測試框架unittest完成appium自動化測試,生成基于html可視化測試報告
代碼示例:
#利用unittest并生成測試報告
class Appium_test(unittest.TestCase):
"""appium測試類"""
def setUp(self):
desired_caps = {
'platformName': 'Android',
'deviceName': 'Android Emulator',#可有可無,這里是指我的模擬器
'platformVersion': '5.0',
# apk包名
'appPackage': 'com.smartisan.notes',
# apk的launcherActivity
'appActivity': 'com.smartisan.notes.NewNotesActivity',
#如果存在activity之間的切換可以用這個
# 'appWaitActivity':'.MainActivity',
'unicodeKeyboard': True,
#隱藏手機中的軟鍵盤
'resetKeyboard': True
}
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
time.sleep()
self.verificationErrors = "今天天氣不錯在家學習!" #設置的斷言
def tearDown(self):
time.sleep()
assertt = self.driver.find_element_by_id("com.smartisan.notes:id/list_rtf_view").text
# print(assertt) #調試用
self.assertEqual(assertt,self.verificationErrors,msg="驗證失敗!")
#斷言:實際結果,預期結果,錯誤信息
self.driver.quit()
def test_creat(self):
"""記事本中新增一條記錄"""
self.driver.find_element_by_id("com.smartisan.notes:id/add_button").click()
time.sleep()
self.driver.find_element_by_class_name("android.widget.EditText").send_keys("今天天氣不錯在家學習!")
self.driver.find_element_by_id("com.smartisan.notes:id/send_finish_button").click()
suite = unittest.TestSuite()
suite.addTest(Appium_test('test_creat'))
report_file = ".\\appium_report.html"
fp = open(report_file,'wb')
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title="appium測試報告",description='新增一條筆記并保存')
runner.run(suite)
fp.close()
生成測試報告:
Appium自動化測試PO模型:
其中,main.py為框架的主入口,test_creat.py調用creat_page.py,creat_page.py調用base_page.py。
PO代碼示例:
main.py
import unittest
import HTMLTestRunner
#相對路徑
testcase_path = ".\\testcase"
report_path = ".\\report\\appium_report.html"
def creat_suite():
uit = unittest.TestSuite()
discover = unittest.defaultTestLoader.discover(testcase_path,pattern="test_*.py")
for test_suite in discover:
# print(test_suite)
for test_case in test_suite:
uit.addTest(test_case)
return uit
suite = creat_suite()
fp = open(report_path,"wb")
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title="測試結果",description="appium新建筆記測試結果")
runner.run(suite)
fp.close()
test_creat.py
from appium import webdriver
import unittest
from appiumframework.PO.creat_page import CreatPage
import time
class Test(unittest.TestCase):
"""自動化"""
def setUp(self):
desired_caps = {
'platformName': 'Android',
'deviceName': 'Android Emulator',#可有可無
'platformVersion': '5.0',
# apk包名
'appPackage': 'com.smartisan.notes',
# apk的launcherActivity
'appActivity': 'com.smartisan.notes.NewNotesActivity',
#如果存在activity之間的切換可以用這個
# 'appWaitActivity':'.MainActivity',
'unicodeKeyboard': True,
#隱藏手機中的軟鍵盤
'resetKeyboard': True
}
self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
time.sleep(5)
self.verificationErrors = "今天天氣不錯在家學習!"
def tearDown(self):
time.sleep(10)
self.driver.quit()
def test_saveedittext(self):
"""保存編輯的文本"""
sp = CreatPage(self.driver)
sp.add_button_link()
sp.run_case("今天天氣不錯在家學習!")
#斷言:實際結果,預期結果,錯誤信息
self.assertEqual(sp.get_finish_button_text(),self.verificationErrors,msg="驗證失敗!")
creat_page.py
from appiumframework.PO import base_page
import time
class CreatPage(base_page.Action):
add_button_loc = ("com.smartisan.notes:id/add_button")
edittext_loc = ("com.smartisan.notes:id/list_rtf_view")
finish_button_loc = ("com.smartisan.notes:id/send_finish_button")
def add_button_link(self):
self.find_element(self.add_button_loc).click()
time.sleep(3) #等待3秒,等待登錄彈窗加載完成
def run_case(self,value):
self.find_element(self.edittext_loc).send_keys(value)
time.sleep(5)
self.find_element(self.finish_button_loc).click()
time.sleep(2)
def get_finish_button_text(self):
return self.find_element(self.edittext_loc).text
base_page.py
class Action(object):
#初始化
def __init__(self,se_driver):
self.driver = se_driver
#重寫元素定位的方法
def find_element(self,loc):
try:
return self.driver.find_element_by_id(loc)
except Exception as e:
print("未找到%s"%(self,loc))
測試報告截圖:
Appium基于python unittest自動化測試并生成html測試報告
本文基于python單元測試框架unittest完成appium自動化測試,生成基于html可視化測試報告 代碼示例: #利用unittest并生成測試報告 class Appium_test(uni ...
簡單實現接口自動化測試(基于python+unittest)
簡單實現接口自動化測試(基于python+unittest) 簡介 本文通過從Postman獲取基本的接口測試Code簡單的接口測試入手,一步步調整優化接口調用,以及增加基本的結果判斷,講解Pytho ...
基于Python的selenuim自動化測試嘗試
工作這么多年了,終于狠下心好好開始學學自動化測試相關知識,揭開這層神秘的面紗. 困難重重,障礙很多,但好在每天都多少有點小收獲. 很感謝一個QQ好友推薦的蟲師,也非常感謝在這個契機讀到了蟲師編著的&l ...
selenium+python+unittest實現自動化測試(入門篇)
本文主要講解關于selenium自動化測試框架的入門知識點,教大家如何搭建selenium自動化測試環境,如何用selenium+python+unittest實現web頁面的自動化測試,先來看看se ...
Python Unittest 自動化單元測試框架Demo
python 測試框架(本文只涉及 PyUnit) https://wiki.python.org/moin/PythonTestingToolsTaxonomy 環境準備 首先確定已經安裝有Pyth ...
符號執行-基于python的二進制分析框架angr
轉載:All Right 符號執行概述 在學習這個框架之前首先要知道符號執行.符號執行技術使用符號值代替數字值執行程序,得到的變量的值是由輸入變 量的符號值和常量組成的表達式.符號執行技術首先由Kin ...
ShutIt:一個基于 Python 的 shell 自動化框架
ShutIt是一個易于使用的基于shell的自動化框架.它對基于python的expect庫(pexpect)進行了包裝.你可以把它看作是“沒有痛點的expect”.它可以通過pip進行安裝. Hel ...
python用unittest+HTMLTestRunner的框架測試并生成測試報告
直接貼代碼: import unittestfrom selenium import webdriverfrom time import sleepimport osimport time # 定義打 ...
python unittest自動測試框架
編寫函數或者類時進行測試,確保代碼正常工作 python? unittest 模塊提供了代碼測試工具.按照定義測試包括兩部分:管理測試依賴庫的代碼(稱為‘固件’)和測試本身. 單元測試用于核實函數的某 ...
隨機推薦
VS2010中項目發布遇到的應用程序池問題(無法識別的屬性“targetFramework”)
1.錯誤情況 2.原因:VS2010中你的應用程序的目標框架與IIS中的應用程序池不同.VS2010中的是.Net Framework4.0,而本機IIS是.Net Framework2.0 3.解決 ...
yii2的安裝使用
一.Yii2框架 Yii2框架有基本和高級兩種版本,主要區別是高級版已經分好了前臺.后臺,基本版只有前臺 二.歸檔安裝方法 歸檔安裝方發很簡單,只需要在官網上下載歸檔文件后,解壓即可使用(但是不使用c ...
java工程項目里,在一個包里面,不能出現同名的類名,這問題是剛接觸java才會遇到的,特別是新手一般都沒有建立包,而是使用默認的,易出現同名的類名,導致eclipse提示錯誤
java工程項目里,在一個包里面,不能出現同名的類名,這問題是剛接觸java才會遇到的,特別是新手一般都沒有建立包,而是使用默認的,易出現同名的類名,導致eclipse提示錯誤. 問題: 創建了一個工 ...
程序員晉級CTO之路的8大準則
推薦閱讀: 大數據智慧平臺落地方案 Nginx + 阿里云SSL + tomcat 實現https訪問代理 永遠別忘了TD 再確認測試代碼前,先找別人幫你檢查下是否無誤.在別人做之前盡量檢查出bug并 ...
4 Git 基礎 - 撤消操作
撤消操作 任何時候,你都有可能需要撤消剛才所做的某些操作.接下來,我們會介紹一些基本的撤消操作相關的命令.請注意,有些撤銷操作是不可逆的,所以請務必謹慎小心,一旦失誤,就有可能丟失部分工作成果. 修改 ...
CSS實現左側多級菜單欄
首先看要實現的效果, 主要是關心技術實現, 所以沒怎么美化 我也是初學html, 所以寫的比較啰嗦 1. 使用列表將內容顯示出來 &l ...
C#讀取Access數據表中某一列內容,保存至數組
string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=product.mdb";OleDbConnecti ...
jQuery代碼實現表格內容可編輯修改
1.效果及功能說明 表格特效制作jquery表格可編輯任意修改里面的數值,是一種比較人性化的用戶設計體驗方式 2.實現原理 通過點擊事件來觸發跳出一個輸入框可以在里面輸入當這個輸入框失去焦點后就把,所 ...
[翻譯] Blocks and Variables
Blocks and Variables https://developer.apple.com/library/ios/documentation/cocoa/conceptual/Blocks/A ...
微信公眾號JSAPI支付
微信公眾號JSAPI支付 一:配置參數 申請成功后,獲取接口文件, 將所有文件放入項目根目錄weixin下,在WxPay.ub.config.php中填入配置賬戶信息; 二:設置授權 開發者中心-&g ...
總結
以上是生活随笔為你收集整理的python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 永远的七日之都伽儿攻略是什么
- 下一篇: python windows程序管理器_