真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python3+selenium自動化測試框架詳解-創(chuàng)新互聯(lián)

背景

創(chuàng)新互聯(lián)是專業(yè)的代縣網(wǎng)站建設(shè)公司,代縣接單;提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行代縣網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

為了更好的發(fā)展自身的測試技能,應(yīng)對測試行業(yè)以及互聯(lián)網(wǎng)行業(yè)的迭代變化。自學(xué)python以及自動化測試。


雖然在2017年已經(jīng)開始接觸了selenium,期間是斷斷續(xù)續(xù)執(zhí)行自動化測試,因為還有其他測試任務(wù),培訓(xùn)任務(wù)要執(zhí)行…
前期建議大家能夠?qū)W習(xí)python基本語法(python基礎(chǔ)教程)

任務(wù)


搭建自動化測試框架,并能有效方便的進行測試,維護成本也要考慮其中。

過程

我的自動化框架可能不成熟,因為是自學(xué)的。請多包涵。也請大佬指導(dǎo)~

python3+selenium自動化測試框架詳解

common


包含:基本的公共方法類,比如HTML報告、Log處理、發(fā)送郵件、基本頁面對象等

其中pageObject里面是對各個測試系統(tǒng)操作頁面的一個封裝,以后用例的方法直接繼承即可??啥啻握{(diào)用,維護起來比較方便。

conf


基本的系統(tǒng)參數(shù)配置信息,可以包含url,正確用戶的信息,簡單日志級別,某些輸出位置,郵件信息等

data


對于數(shù)據(jù)驅(qū)動或者其他測試用例中需要測試的數(shù)據(jù),之后測試用例流程不變,可以直接在文檔中進行測試數(shù)據(jù)的修改。暫時采用excel。也可以采用csv,xml等等方法

log


日志輸出,暫時包括了 log輸出,htmlreport輸出以及img的保存。

test


其中包含testcase以及testsuite兩個模塊

testcase 負責(zé)編寫測試用例如果某個功能有多個py文件編寫可以再新建一個目錄。
testsuite 就是測試套件,可以按需求進行選擇需要的測試項(包含測試用例以及測試類)
注意:使用ddt則不可以再使用addTest方式單獨添加測試用例了。


1


代碼部分


- common中的BasePage

class BasePage():
 global logg
 logg = LogHandler().logger
 def __init__(self,driver,url=None):
  self.wd = driver
  self.wd.implicitly_wait(5)
  self.actions = ActionChains(self.wd)
  if url :
   self.url = url
  else:
   self.url = self.server_url_conf()
 #瀏覽器行為的一些方法
 def get_conf_url(self):
		self.wd.get(self.url)
  self.wd.maximize_window()
  logg.debug("enter conf_url : " + str(self.url))
 def brower_close(self):
  return self.wd.close()
 def brower_quit_all(self):
  return self.wd.quit()
... 	下面還有刷新,前進后退等

 #定位 這里通過 By.xx 方法
 def find_web_element(self,*loc):
  #self.wd.find_element(*loc)
  return self.wd.find_element(*loc)

 #元素操作
 def type_text(self,loc,text):
  return self.wd.find_element(*loc).send_keys(text)
  
 def clear_text(self,*loc):
  return self.wd.find_element(*loc).clear()
  
 def submit_func(self,*loc):
  return self.wd.find_element(*loc).submit()

 def click_btn(self,*loc):
  return self.wd.find_element(*loc).click()
  
	#鼠標(biāo)相關(guān)
 def mouse_move_to_element(self,*loc):
  elem = self.find_web_element(*loc)
  self.actions.move_to_element(elem).perform()
... 下面還有點擊,雙擊,右擊的一些方法  

 #獲取信息行為
 def get_web_url(self):
  return self.wd.current_url
 def get_title(self):
  return self.wd.title
 def get_element_text(self,*loc):
  return self.find_web_element(*loc).text

 #元素是否存在 是 True
 def check_element_isexist(self,loc):
  isexist = False
  try:
   EC.presence_of_element_located(loc)(self.wd)
   isexist = True
  except Exception as e:
   isexist = False
   logg.debug(' isexist or not :',exc_info = True)
  return isexist
 def check_element_has_text(self,loc,text):
		pass #省略
 
 def check_element_isdisplayed(self,*loc):
  	pass #省略
  	
 #生成圖
 def __inser_img(self,passorfailed,imgname):
  time_loc = time.strftime("%m%d_%H%M%S",time.localtime())
  file_path = os.path.abspath(__file__)
  file_path = os.path.join(file_path+"/../../log/%s_%s.png" %(imgname,time_loc))
  self.wd.get_screenshot_as_file(file_path)
  logg.debug('insert_%s_img %s ' %(passorfailed,(file_path)))

 def insert_error_img(self,imgname):
  self.__inser_img("error",imgname)
 def insert_success_img(self,imgname):
  self.__inser_img("success",imgname)
 def insert_debug_img(self,imgname):
  self.__inser_img("debug",imgname)


 def server_url_conf(self):
  self.host = readconfig.ReadConfig().getserver('host')
  self.port = readconfig.ReadConfig().getserver('port')
  urlvalue = self.host + ":" + self.port

  return urlvalue

if __name__ == '__main__':
 test = BasePage(webdriver.Chrome())
 test.get_conf_url()

網(wǎng)頁題目:python3+selenium自動化測試框架詳解-創(chuàng)新互聯(lián)
鏈接地址:http://weahome.cn/article/dooeed.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部