電商項目自動化測試實戰
前言:
- Web自動化主要是功能自動化和部分功能的兼容性測試
- Web自動化主要針對:主要流程和重要功能的自動化(有效等價類、異常場景)
測試準備: TPshop開源電商項目
測試業務場景: 登錄->搜索->添加購物車->結算->確認訂單->支付(不能使用)
實現思路: 使用Python+Selenium的語言,打開瀏覽器進入網站,找到元素(xpath、cass),操作元素(點擊,輸入,懸停等)
注意事項:
- 添加隱式等待
- 注意iframe
- 注意特殊情況的固定
自動化代碼:
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.action_chains import ActionChains
#打開電商首頁(未登錄)
driver=webdriver.Firefox()
driver.implicitly_wait(20) #隱式等待
driver.get("http://127.0.0.1/")
#-----------------------------------登錄--------------------------------
driver.find_element_by_css_selector(".red").click() #點擊登錄按鈕
#輸入用戶名和密碼
driver.find_element_by_css_selector("#username").send_keys("[email protected]")
driver.find_element_by_css_selector("#password").send_keys("dpl12345")
#這裏睡眠十秒爲了手填驗證碼,沒法子了!
sleep(10)
driver.find_element_by_css_selector(".J-login-submit").click()
#----------------------------------搜索----------------------------------
driver.find_element_by_class_name("search_usercenter_text").send_keys("手機")
driver.find_element_by_css_selector(".search_usercenter_btn").click()
sleep(2)
#----------------------------------加入購物車-----------------------------
#選擇一個商品
driver.find_element_by_xpath("html/body/div[4]/div/div[2]/div[2]/ul/li[4]/div/div[1]/a/img").click()
sleep(2)
driver.find_element_by_css_selector("#join_cart").click() #添加購物車
#進入iframe添加成功彈出框
driver.switch_to.frame(driver.find_element_by_id("layui-layer-iframe1"))
sleep(2)
driver.find_element_by_css_selector(".ui-button.ui-button-f80.fl.go-shopping").click() #繼續購物
#退出彈出框
driver.switch_to.default_content()
sleep(2)
#----------------------------------結算-----------------------------------
#進入購物車
# driver.find_element_by_css_selector(".c-n.fl>span").click()
#鼠標懸停到我的購物車
action=ActionChains(driver)
action.move_to_element(driver.find_element_by_css_selector(".c-n.fl>span")).perform()
sleep(1)
#點擊去購物車結算
driver.find_element_by_css_selector(".c-btn").click()
sleep(2)
checkBox=driver.find_element_by_css_selector(".check-box.checkCart.checkCartItem")
if checkBox.is_selected():
checkBox.click()
checkBox.click()
sleep(2)
driver.find_element_by_css_selector(".gwc-qjs").click() #去結算
sleep(2)
#----------------------------------確認訂單--------------------------------
driver.execute_script("window.scrollTo(0,100)") #執行js控制滾動條
sleep(2)
driver.find_element_by_css_selector(".Sub-orders.gwc-qjs").click() #確認訂單
sleep(3)
#----------------------------------支付------------------------------------
#選擇支付方式
driver.find_element_by_xpath(".//*[@id='cart4_form']/div/div/dl/dd/div/div[2]/ul/li[3]/div/label/img").click() #選擇支付方式
sleep(2)
#去支付
driver.find_element_by_css_selector(".button-style-5.button-confirm-payment").click()
sleep(4)
driver.quit()
實現效果: