日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...

發布時間:2023/12/15 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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测试报告...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。