class TestHouTai(): @pytest.fixture(scope="function") def open_houtai(self, driver): '''每次用例回到后台一级界面首页''' self.hou = Base(driver) driver.get(url_hou) def test_1(self, driver, open_houtai): '''关于禅道-升级专业版本''' t1 = self.hou.get_text(loc_about_1) assert t1 == "升级专业版本" def test_2(self, driver, open_houtai): '''关于禅道-官方网站''' t1 = self.hou.get_text(loc_about_2) assert t1 == "官方网站" def test_3(self, driver, open_houtai): '''关于禅道-版本历史''' t1 = self.hou.get_text(loc_about_3) assert t1 == "版本历史" def test_4(self, driver, open_houtai): '''关于禅道-授权协议''' t1 = self.hou.get_text(loc_about_4) assert t1 == "授权协议" def test_5(self, driver, open_houtai): '''关于禅道-插件平台''' t1 = self.hou.get_text(loc_about_5) assert t1 == "插件平台"
class TestHouTai(): @pytest.fixture(scope="function", autouse=True) def open_houtai(self, driver, host): '''每次用例回到后台一级界面首页''' self.hou = Base(driver) driver.get(host + url_hou) @pytest.mark.aboutzentao @pytest.mark.parametrize("loc_about_x, text", test_about_data, ids=[i[1] for i in test_helpwe_data]) def test_aboutzenta(self, loc_about_x, text): '''关于禅道-用例''' t1 = self.hou.get_text(loc_about_x) assert t1 == text @pytest.mark.helpwe @pytest.mark.parametrize("loc_helpwe_x, text", test_helpwe_data, ids=[i[1] for i in test_helpwe_data]) def test_helpwe(self, loc_helpwe_x, text): '''帮我我们-用例''' t1 = self.hou.get_text(loc_helpwe_x, ) assert t1 == text def test_fail(self): '''测试失败-截图功能''' assert 1 == 2
class LoginPage(): def __init__(self, driver): self.driver = driver self.b = Base(self.driver) def login(self, usr="******", psw="666666"): self.driver.get( "http://47.97.160.167:8980/weibofenqi-manager/login/index.do") self.driver.maximize_window() sleep(1) self.b.clear(("css selector", ".formBox>form>input:nth-child(1)")) self.b.send(("css selector", ".formBox>form>input:nth-child(1)"), usr) self.b.clear(("css selector", ".formBox>form>input:nth-child(3)")) self.b.send(("css selector", ".formBox>form>input:nth-child(3)"), psw) self.b.click(("css selector", ".formBox>form>input:nth-child(5)")) # self.driver.find_element_by_css_selector(".formBox>form>input:nth-child(1)").send_keys(usr) # self.driver.find_element_by_css_selector(".formBox>form>input:nth-child(3)").send_keys(psw) # self.driver.find_element_by_css_selector(".formBox>form>input:nth-child(5)").click() def get_login_result(self): try: r = self.b.get_text(("css selector", "#sessionInfoDiv>strong")) return r except: r = "" return r
def _loginShop(driver, host ,user=config["shopName"], psw=config["shopPwd"]): zen = Base(driver) driver.maximize_window() driver.get(host+"/?_plat=shop") zen.sendKeys(loc1, user) zen.sendKeys(loc2, psw) zen.click(loc3) t = zen.get_text(loc6) assert text_0 in t
class LoginPage(): def __init__(self, driver): #初始化 self.driver = driver self.b = Base(self.driver) def login(self, uesr="admin", psw="123456"): self.driver.get("http://127.0.0.1/zentao/user-login.html") time.sleep(3) self.b.send("xpath", ".//*[@id='account']", "admin") self.b.send("css selector", "[name='password']", "123456") self.b.click("css selector", "#submit") def get_login_reslut(self): #断言 #time.sleep(3) #try: #t = self.b.get_text("css selector", "#userMenu>a") #return t #except: #return "" self.b.get_text("css selector", "#userMenu>a", timeout=5)
def _loginH5(driver, user=config["h5Name"], psw=config["h5Pwd"],path=config["h5path"]): zen = Base(driver) driver.set_window_size(500,1100) driver.get(path) zen.sendKeys(loc1, user) zen.sendKeys(loc2, psw) zen.click(loc4) time.sleep(2) t = zen.get_text(loc7) assert t == text_1
def _loginAdmin(driver, host, user=config["adminName"], psw=config["adminPwd"]): zen = Base(driver) driver.maximize_window() driver.get(host+"/?_plat=admin") zen.sendKeys(loc1, user) zen.sendKeys(loc2, psw) zen.click(loc3) time.sleep(2) t = zen.get_text(loc6) assert text_0 in t
class TestHouTai(): @pytest.fixture(scope="function") def open_houtai(self,driver): '''每次用例回到后台一级界面首页''' self.hou = Base(driver) driver.get(url_hou) @pytest.mark.aboutzentao @pytest.mark.parametrize("loc_about_x,text",test_about_data) def test_aboutzentao(self,driver,open_houtai,loc_about_x,text): '''关于禅道-升级专业版本''' t1 = self.hou.get_text(loc_about_x) assert t1 == text @pytest.mark.helpwe @pytest.mark.parametrize("loc_helpwe_x,text",test_helpwe_data) def test_helpwe(self,driver,open_houtai,loc_helpwe_x,text): '''帮助我们-用例''' t1 = self.hou.get_text(loc_helpwe_x) assert t1 == text
class TestHouTai(): @pytest.fixture(scope="function") def open_houtai(self, driver): '''每次用例回到后台一级界面首页''' self.hou = Base(driver) driver.get(url_hou) #判断后台的首页是否打开了 ,打开失败就返回False r = self.hou.is_title("后台管理 - 禅道xxx") print("后台管理页面title:%s" % r) return r @pytest.mark.aboutzentao @pytest.mark.parametrize("loc_about_x,text", test_about_data) def test_aboutzentao(self, driver, open_houtai, loc_about_x, text): '''关于禅道-升级专业版本''' if not open_houtai: pytest.xfail("后台打开失败,标记为xfail") t1 = self.hou.get_text(loc_about_x) assert t1 == text
class SupplierMange(): def __init__(self, driver): self.driver = driver self.b = Base(self.driver) # 添加供应商 def supplier_add(self, supplier): self.b.click( ("xpath", ".//*[@id='menu_accordion']/div[4]/div[1]/div[1]")) sleep(1) self.b.click( ("xpath", ".//*[@id='menu_accordion']/div[4]/div[2]/ul/li")) sleep(1) self.b.switch_frame(("id", "mainFrame_1")) sleep(1) self.b.click(("css selector", "#button-add")) sleep(1) self.b.send(("css selector", "#_easyui_textbox_input2"), supplier) sleep(1) self.b.click(("css selector", "#add_submit_form")) sleep(1) self.b.click(("xpath", ".//*[@id='opter_layout']/div[11]/div[3]/a")) # 编辑供应商 def supplier_edit(self, supplier, supplier1): self.b.click( ("xpath", ".//*[@id='menu_accordion']/div[4]/div[1]/div[1]")) sleep(1) self.b.click( ("xpath", ".//*[@id='menu_accordion']/div[4]/div[2]/ul/li")) sleep(1) self.b.switch_frame(("id", "mainFrame_1")) sleep(1) self.b.clear(("css selector", "#_easyui_textbox_input1")) sleep(1) self.b.send(("css selector", "#_easyui_textbox_input1"), supplier) sleep(1) self.b.click(("css selector", "#button_search")) sleep(1) self.b.click(("css selector", ".datagrid-cell-check>input")) sleep(1) self.b.click(("css selector", "#button-view")) sleep(1) self.b.clear(("css selector", "#_easyui_textbox_input3")) sleep(1) self.b.send(("css selector", "#_easyui_textbox_input3"), supplier1) sleep(1) self.b.click(("css selector", "#edit_submit_form")) sleep(1) self.b.click(("xpath", ".//*[@id='opter_layout']/div[11]/div[3]/a")) # 查询供应商 def supplier_query(self, supplier): # self.b.click(("xpath", ".//*[@id='menu_accordion']/div[4]/div[1]/div[1]")) # sleep(1) # self.b.click(("xpath", ".//*[@id='menu_accordion']/div[4]/div[2]/ul/li")) # sleep(1) # self.b.switch_frame(("id", "mainFrame_1")) # sleep(1) self.b.clear(("css selector", "#_easyui_textbox_input1")) sleep(1) self.b.send(("css selector", "#_easyui_textbox_input1"), supplier) sleep(1) self.b.click(("css selector", "#button_search")) sleep(1) try: a = self.b.get_text( ("xpath", ".//*[@class='datagrid-btable']/tbody/tr/td[3]/div")) return a except: return ""
class BrandMange(): def __init__(self, driver): self.driver = driver self.b = Base(self.driver) def brand_add(self, name, sort_no, icon_path): self.b.click( ("xpath", ".//*[@id='menu_accordion']/div[2]/div[1]/div[1]")) sleep(1) self.b.click( ("xpath", ".//*[@id='menu_accordion']/div[2]/div[2]/ul/li[3]")) sleep(1) self.b.switch_frame(("id", "mainFrame_1")) sleep(1) self.b.click(("xpath", ".//*[@id='button-add']")) sleep(1) self.b.send(("xpath", ".//*[@id='_easyui_textbox_input2']"), name) sleep(1) self.b.send(("xpath", ".//*[@id='_easyui_textbox_input12']"), sort_no) sleep(1) self.b.send(("xpath", ".//*[@id='upBox']/div/input[2]"), icon_path) sleep(1) self.b.click(("xpath", ".//*[@id='add_submit_form']")) sleep(1) self.b.click(("xpath", ".//*[@id='opter_layout']/div[15]/div[3]/a")) sleep(1) def brand_query(self, name, n): self.b.clear(("xpath", ".//*[@id='_easyui_textbox_input1']")) sleep(1) self.b.send(("xpath", ".//*[@id='_easyui_textbox_input1']"), name) sleep(1) self.b.click(("xpath", ".//*[@id='button_search']")) sleep(1) try: a = self.b.get_text( ("xpath", (".//tr[contains(@id,'2-0')]/td[%s]/div" % n))) return a except: return "" def brand_edit(self, name, name1): self.b.click( ("xpath", ".//*[@id='menu_accordion']/div[2]/div[1]/div[1]")) sleep(1) self.b.click( ("xpath", ".//*[@id='menu_accordion']/div[2]/div[2]/ul/li[3]")) sleep(1) self.b.switch_frame(("id", "mainFrame_1")) sleep(1) self.b.clear(("xpath", ".//*[@id='_easyui_textbox_input1']")) sleep(1) self.b.send(("xpath", ".//*[@id='_easyui_textbox_input1']"), name) sleep(1) self.b.click(("xpath", ".//*[@id='button_search']")) sleep(1) self.b.click(("xpath", ".//tr[contains(@id,'2-0')]/td[1]/div/input")) sleep(1) self.b.click(("xpath", ".//*[@id='button-view']")) sleep(1) self.b.clear(("xpath", ".//*[@id='_easyui_textbox_input5']")) sleep(1) self.b.send(("xpath", ".//*[@id='_easyui_textbox_input5']"), name1) sleep(1) self.b.click(("xpath", ".//*[@id='edit_submit_form']")) sleep(1) self.b.click(("xpath", ".//*[@id='opter_layout']/div[15]/div[3]/a")) sleep(1) def brand_display(self, name): self.b.click( ("xpath", ".//*[@id='menu_accordion']/div[2]/div[1]/div[1]")) sleep(1) self.b.click( ("xpath", ".//*[@id='menu_accordion']/div[2]/div[2]/ul/li[3]")) sleep(1) self.b.switch_frame(("id", "mainFrame_1")) sleep(1) self.b.clear(("xpath", ".//*[@id='_easyui_textbox_input1']")) sleep(1) self.b.send(("xpath", ".//*[@id='_easyui_textbox_input1']"), name) sleep(1) self.b.click(("xpath", ".//*[@id='button_search']")) sleep(1) self.b.click(("xpath", ".//tr[contains(@id,'2-0')]/td[1]/div/input")) sleep(1) self.b.click(("xpath", ".//*[@id='button-disBlock']")) sleep(1) self.b.click(("xpath", ".//*[@id='opter_layout']/div[15]/div[3]/a[1]")) sleep(1) self.b.click(("xpath", ".//*[@id='opter_layout']/div[15]/div[3]/a")) sleep(1) def brand_hide(self, name): self.b.click( ("xpath", ".//*[@id='menu_accordion']/div[2]/div[1]/div[1]")) sleep(1) self.b.click( ("xpath", ".//*[@id='menu_accordion']/div[2]/div[2]/ul/li[3]")) sleep(1) self.b.switch_frame(("id", "mainFrame_1")) sleep(1) self.b.clear(("xpath", ".//*[@id='_easyui_textbox_input1']")) sleep(1) self.b.send(("xpath", ".//*[@id='_easyui_textbox_input1']"), name) sleep(1) self.b.click(("xpath", ".//*[@id='button_search']")) sleep(1) self.b.click(("xpath", ".//tr[contains(@id,'2-0')]/td[1]/div/input")) sleep(1) self.b.click(("xpath", ".//*[@id='button-block']")) sleep(1) self.b.click(("xpath", ".//*[@id='opter_layout']/div[15]/div[3]/a[1]")) sleep(1) self.b.click(("xpath", ".//*[@id='opter_layout']/div[15]/div[3]/a")) sleep(1)
class TestAddOrder(): # loctor loc_amount = ("xpath", "//*[@class='l-panel-item l-margin-b']/div[1]/span/i") loc_carName = ("xpath", "//*[@class='l-panel-item l-margin-b']/div[2]/div[1]/p/b") loc_productDate = ( "xpath", "//*[@class='l-panel-item l-margin-b']/div[2]/div[1]/div[1]/p[1]/span[1]" ) loc_gearbox = ( "xpath", "//*[@class='l-panel-item l-margin-b']/div[2]/div[1]/div[1]/p[1]/span[2]" ) loc_type = ( "xpath", "//*[@class='l-panel-item l-margin-b']/div[2]/div[1]/div[1]/p[1]/span[3]" ) loc_color = ( "xpath", "//*[@class='l-panel-item l-margin-b']/div[2]/div[1]/div[1]/p[2]/span[1]" ) loc_interiorColor = ( "xpath", "//*[@class='l-panel-item l-margin-b']/div[2]/div[1]/div[1]/p[2]/span[2]" ) loc_guidePrice = ( "xpath", "//*[@class='l-panel-item l-margin-b']/div[2]/div[1]/div[1]/p[2]/span[3]/i" ) loc_purchasePrice = ( "xpath", "//*[@class='l-panel-item l-margin-b']/div[2]/div[1]/div[2]/p[1]/span[1]/i" ) loc_paidDeposit = ( "xpath", "//*[@class='l-panel-item l-margin-b']/div[2]/div[1]/div[2]/p[1]/span[2]/i" ) loc_price = ( "xpath", "//*[@class='l-panel-item l-margin-b']/div[2]/div[1]/div[2]/p[2]/span[1]/i" ) loc_deposit = ( "xpath", "//*[@class='l-panel-item l-margin-b']/div[2]/div[1]/div[2]/p[2]/span[2]/i" ) loc_userName = ( "xpath", "//*[@class='l-layout-left l-margin-r']/div[1]/div[2]/table/tr[1]/td[2]" ) loc_phone = ( "xpath", "//*[@class='l-layout-left l-margin-r']/div[1]/div[2]/table/tr[2]/td[2]" ) loc_idCard = ( "xpath", "//*[@class='l-layout-left l-margin-r']/div[1]/div[2]/table/tr[3]/td[2]" ) loc_address = ( "xpath", "//*[@class='l-layout-left l-margin-r']/div[1]/div[2]/table/tr[4]/td[2]" ) loc_orgName = ( "xpath", "//*[@class='l-layout-left l-margin-r']/div[2]/div[2]/table/tr[1]/td[2]" ) loc_orgAddress = ( "xpath", "//*[@class='l-layout-left l-margin-r']/div[2]/div[2]/table/tr[2]/td[2]" ) loc_orgLink = ( "xpath", "//*[@class='l-layout-left l-margin-r']/div[2]/div[2]/table/tr[3]/td[2]" ) loc_orgPhone = ( "xpath", "//*[@class='l-layout-left l-margin-r']/div[2]/div[2]/table/tr[4]/td[2]" ) loc_orgAccount = ( "xpath", "//*[@class='l-layout-left l-margin-r']/div[2]/div[2]/table/tr[5]/td[2]" ) loc_bankName = ( "xpath", "//*[@class='l-layout-left l-margin-r']/div[2]/div[2]/table/tr[6]/td[2]" ) loc_payMark = ( "xpath", "//*[@class='l-layout-left l-margin-r']/div[2]/div[2]/table/tr[7]/td[2]" ) # info orderInfo_data = [(loc_amount, i["adjustAmount"]), (loc_carName, i["carName"] + " " + i["style"]), (loc_gearbox, i["gearbox"]), (loc_type, i["type"]), (loc_color, i["color"]), (loc_interiorColor, i["interiorColor"]), (loc_guidePrice, i["guidePrice"]), (loc_purchasePrice, i["purchasePrice"]), (loc_paidDeposit, i["paidDeposit"]), (loc_price, i["price"]), (loc_deposit, i["deposit"]), (loc_userName, i["userName"]), (loc_phone, i["phone"]), (loc_idCard, i["idCard"]), (loc_address, i["address"]), (loc_orgName, i["shopName"]), (loc_orgAddress, i["orgAddress"]), (loc_orgLink, i["orgLink"]), (loc_orgPhone, i["orgPhone"]), (loc_orgAccount, i["account"]), (loc_bankName, i["bankName"] + " " + i["bankBranch"]), (loc_payMark, i["payRemark"])] @pytest.fixture(scope="function", autouse=True) def base(self, driver): self.shop = Base(driver) self.o = orgOperation(driver) @pytest.mark.addOrder @pytest.mark.usefixtures("loginShop_0") def test_addOrder(self, driver): print("-------- 保理1下单测试 --------") self.o.order() @pytest.mark.orderInfo @pytest.mark.parametrize("loc_orderInfo_x, text", orderInfo_data) def test_checkOrderInfo(self, loc_orderInfo_x, text): """汽贸店详情-用例""" t1 = self.shop.get_text(loc_orderInfo_x) assert text in t1
class TestAddOrder(): loc_01 = ("xpath", "//*[@type='button']") loc_02 = ("xpath", "//*[@class='van-tab van-tab--active']/span") loc_03 = ("xpath", "//*[@class='l-form']/div[1]/span") text_01 = "登录" text_02 = "待处理" text_03 = "登录账号" @pytest.fixture(scope="function", autouse=True) def base(self, driver): self.driver = Base(driver) self.o = bath(driver) @pytest.mark.addB2 @pytest.mark.usefixtures("loginShop_0") def test_addOrder(self, driver): print("-------- 保理2下单测试 --------") o = orgOperation(driver) o.orderBath() @pytest.mark.orderInfo @pytest.mark.parametrize("loc_orderInfo_x, text", orderInfo_data) def test_checkOrderInfo(self, loc_orderInfo_x, text, driver): '''汽贸店详情-用例''' t = self.driver.get_text(loc_orderInfo_x) assert text in t def test_logout(self, driver): driver.delete_all_cookies() self.o.Drop() t = self.driver.get_text(self.loc_01) assert t in self.text_01 @pytest.mark.verifyOrder @pytest.mark.usefixtures("loginAdmin_0") def test_virfyOrder(self, driver): print("\n-------- 保理2审核测试 --------") self.o.adminVerifyB2() driver.delete_all_cookies() self.o.Drop() t = self.driver.get_text(self.loc_01) assert t in self.text_01 @pytest.mark.managerVerify @pytest.mark.usefixtures("loginH5_0") def test_managerVerify(self, driver): print("\n-------- 总经理审核测试 ---------") self.o.h5VerifyOrder_B2() t1 = self.driver.get_text(self.loc_02) assert t1 in self.text_02 driver.delete_all_cookies() self.o.h5Drop() t2 = self.driver.get_text(self.loc_03) @pytest.mark.signC2 @pytest.mark.usefixtures("loginAdmin_1") def test_signC2(self, driver): print("/n-------- 后台C2签署测试 ---------") self.o.adminB2Detail() self.o.signC2() driver.delete_all_cookies() self.o.Drop() t = self.driver.get_text(self.loc_01) assert t in self.text_01 @pytest.mark.signC2C3 @pytest.mark.usefixtures("loginShop_1") def test_signC2C3(self, driver): print("/n--------- 门店C2C3签署测试 ---------") self.o.shopB2Detail() self.o.signC2Shop() self.o.signC3Shop() driver.delete_all_cookies() self.o.Drop() t = self.driver.get_text(self.loc_01) assert t in self.text_01 @pytest.mark.logistics @pytest.mark.usefixtures("loginAdmin_2") def test_logistics(self, driver): print("/n---------- 物流下单以及验车 ---------") # driver.get(p["admin"]) self.o.adminLogistics() driver.delete_all_cookies() self.o.Drop() t = self.driver.get_text(self.loc_01) assert t in self.text_01 @pytest.mark.checkCarVerify @pytest.mark.usefixtures("loginShop_2") def test_checkCarVerify(self, driver): print("/n-------- 门店验车 --------") self.o.shopCheckCar() driver.delete_all_cookies() self.o.Drop() t = self.driver.get_text(self.loc_01) assert t in self.text_01 @pytest.mark.verifyTicket @pytest.mark.usefixtures("loginAdmin_3") def test_verifyTicket(self, driver): print("/n--------- 收齐票证 --------") self.o.adminReceiveTicket() self.o.signC3_1() driver.delete_all_cookies() self.o.Drop() t = self.driver.get_text(self.loc_01) assert t in self.text_01 @pytest.mark.signC3_1Shop @pytest.mark.usefixtures("loginShop_3") def test_signC3_1Shop(self, driver): print("/n-------- 门店签署C3 --------") # driver.get(p["shop"]) self.o.shopB2Detail() self.o.signC3_1Shop() driver.delete_all_cookies() self.o.Drop() t = self.driver.get_text(self.loc_01) assert t in self.text_01 @pytest.mark.managerVerifyLoan @pytest.mark.usefixtures("loginH5_1") def test_managerVerifyLoan(self, driver): print("/n-------- 总经理同意放款 --------") # driver.set_window_size(500,1100) # driver.get(p["h5"]) self.o.h5VerifyLoan() driver.delete_all_cookies() self.o.h5Drop() t2 = self.driver.get_text(self.loc_03) assert t2 in self.text_03 @pytest.mark.confirm @pytest.mark.usefixtures("loginAdmin_4") def test_confirm(self, driver): print("/n-------- 财务确认放款 --------") # driver.maximize_window() # driver.get(p["admin"]) self.o.adminConfirmLoan() driver.delete_all_cookies() self.o.Drop() t = self.driver.get_text(self.loc_01) assert t in self.text_01 @pytest.mark.shopSettlement @pytest.mark.usefixtures("loginShop_4") def test_shopSettlement(self, driver): print("/n-------- 结算申请 --------") # driver.get(p["shop"]) self.o.shopSettlement() driver.delete_all_cookies() self.o.Drop() t = self.driver.get_text(self.loc_01) assert t in self.text_01 @pytest.mark.adminSettlement @pytest.mark.usefixtures("loginAdmin_5") def test_adminVerifySettlement(self, driver): print("/n-------- 审核结算 --------") # driver.get(p["admin"]) self.o.adminVerifySettlement() driver.delete_all_cookies() self.o.Drop() t = self.driver.get_text(self.loc_01) assert t in self.text_01 @pytest.mark.h5allowCar @pytest.mark.usefixtures("loginH5_2") def test_h5AllowCar(self, driver): print("/n-------- 同意放车 --------") self.o.h5AllowCar() driver.delete_all_cookies() self.o.h5Drop() t2 = self.driver.get_text(self.loc_03) assert t2 in self.text_03 @pytest.mark.sendTicket @pytest.mark.usefixtures("loginAdmin_6") def test_sendTicket(self, driver): print("/n-------- 寄出票证 --------") self.o.adminSendTicket() driver.delete_all_cookies() self.o.Drop() t = self.driver.get_text(self.loc_01) assert t in self.text_01