unittest 管理用例生成測試報告

2021-10-09 18:49:27 字數 3650 閱讀 2805

# 登入方法的封裝

from time import sleep

from python_selenium.slide import swipeleft

def login(user,pwd):

caps =

dr = webdriver.remote("",caps)

dr.implicitly_wait(10)

sleep(3)

try:

dr.find_element_by_id("com.yw.yzz:id/iv_img")

sleep(2)

except:

dr.find_element_by_id("com.yw.yzz:id/seting_tab").click()

else:

swipeleft(dr,3,1000)

sleep(1)

dr.find_element_by_id("com.yw.yzz:id/btn_open").click()

sleep(4)

dr.find_element_by_id("com.yw.yzz:id/seting_tab").click()

sleep(1)

dr.find_element_by_xpath('"com.yw.yzz:id/tv_name"]').click()

el2 = dr.find_element_by_id("com.yw.yzz:id/et_phone")

el2.send_keys(user)

el3 = dr.find_element_by_id("com.yw.yzz:id/et_password")

el3.send_keys(pwd)

el4 = dr.find_element_by_id("com.yw.yzz:id/btn_login")

sleep(1)

el4.click()

try:

dr.find_element_by_id("com.yw.yzz:id/tv_phone")

except:

raise assertionerror

else:

pass

return dr

# 滑動方法封裝

from time import sleep

def swipeleft(dr,n,t):

width = dr.get_window_size()["width"]

height = dr.get_window_size()["height"]

for i in range(n):

dr.swipe(width*0.9,height/2,width*0.1,height/2,t)

sleep(1)

def swipeup(dr,n,t):

width = dr.get_window_size()["width"]

height = dr.get_window_size()["height"]

for i in range(n):

dr.swipe(width*0.5,height*0.9,width*0.5,height*0.1,t)

sleep(1)

# 用例輸出

from python_selenium.yyt_login import login

from time import sleep

import unittest

class yyt(unittest.testcase):

def setup(self):

self.driver = login("1777982***x","******x")

sleep(1)

el1 = self.driver.find_element_by_id("com.yw.yzz:id/iv_btn_setting")

el1.click()

def test_changename(self):

el2 = self.driver.find_element_by_xpath("/hierarchy/android.widget.framelayout/android.widget.linearlayout")

el2.click()

el3 = self.driver.find_element_by_id("com.yw.yzz:id/ll_updateinfo_name")

el3.click()

el4 = self.driver.find_element_by_id("com.yw.yzz:id/et_my_changemyname")

el4.clear()

el4.send_keys("***x")

el5 = self.driver.find_element_by_id("com.yw.yzz:id/top_right_tv")

el5.click()

def test_change***(self):

self.driver.tap([(0,131),(1080,281)],500)

sleep(1)

self.driver.find_element_by_id("com.yw.yzz:id/ll_updateinfo_gender").click()

sleep(1)

self.driver.find_element_by_id("com.yw.yzz:id/ll_choosegender_secret").click()

def teardown(self):

self.driver.back()

sleep(1)

el7 = self.driver.find_element_by_id("com.yw.yzz:id/exit_btn")

el7.click()

el8 = self.driver.find_element_by_id("com.yw.yzz:id/sure_button")

el8.click()

sleep(1)

self.driver.quit()

if __name__ == '__main__':

unittest.main()

# 批量執行用例及生成測試報告

import unittest

import htmltestrunner

path = "d:\\work_doc\\codefile\\python_selenium"

testcase = unittest.defaulttestloader.discover(path,pattern="case.py",top_level_dir=none)

yyttestreport = "d:\\testreport.html"

with open(yyttestreport,"wb") as yyt:

runner = htmltestrunner.htmltestrunner(yyt,title="測試報告",description="詳細報告")

runner.run(testcase)

點讚關注~~持續分享,加入我們,642830685,免費領取最新軟體測試大廠面試資料和python自動化、介面、框架搭建學習資料!技術大牛解惑答疑,同行一起交流。

unittest框架(一)用例管理

在unittest框架的自動化介面測試中,可以用yaml檔案來管理用例,這樣一方面,不會像excel管理用例那麼死板 另一方面,資料讀取出來就是乙個字典,便於取值,用起來更靈活。首先,需要安裝乙個模組,pip install pyyaml即可,然後在python檔案中匯入import yaml 例如...

unittest(執行用例)

from selenium import webdriver from time import sleep import unittest 匯入unittest庫 import htmltestrunner 建立乙個類,並且該類繼承unittest.case類 初始環境,每乙個用例執行時都會先執行這...

unittest用例執行的順序

用例的執行順序涉及多個層級 在多個測試目錄的情況下,先執行哪個目錄?在多個測試檔案的情況下,先執行哪個檔案?在多個測試類的情況下,先執行哪個測試類?在多個測試方法 用例 的情況下,先執行哪個測試方法?import unittest class testbdd unittest.testcase de...