# 登入方法的封裝
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...