def test_common_tool(self): """测试买车列表页 常用工具的展示以及跳转请求是否正常@author:fangyu""" resultList = {} self.driver.get(bugcar_url) ulList = self.driver.find_element( BuyCarLocator.COMMON_TOOLS).find_elements_by_tag_name('li') if ulList: for li in ulList: text = li.find_element_by_tag_name('a').text url = li.find_element_by_tag_name('a').get_attribute('href') resultList[text] = url for url in resultList: r = requests.get(resultList[url]) status = r.status_code if status != 200: tt_check.assertFalse( False, '%s对应的地址:%s,请求ERROR,状态码:%s' % (url, resultList[url], status)) else: tt_check.assertTrue( True, '%s对应的地址:%s,请求OK,状态码:%s' % (url, resultList[url], status)) else: tt_check.assertFalse(False, '列表页常用工具未展示')
def test_sugar_bean(self): """M首页糖豆接口@author:fangyu""" sugarBeanTitleList = [] """首页糖豆接口@author:fangyu""" response = requests.get( sugar_bean_url + 'c-city-consumer/carSearchTag/getSugarBean?cityId=201&terminalId=3' ) status_code = response.status_code if status_code == 200: suageBeanData = json.loads(response.text).get('data') if suageBeanData: for data in suageBeanData: print(data) title = data['title'] sugarBeanTitleList.append(title) sugarBeanTitleListStr = json.dumps(sugarBeanTitleList, ensure_ascii=False) tt_check.assertTrue( True, '当前城市:北京,首页展示的糖豆为:{sugarBeanTitleListStr}'.format( sugarBeanTitleListStr=sugarBeanTitleListStr)) else: tt_check.assertFalse(False, '当前城市:北京,首页糖豆接口返回空') else: print('接口有问题') tt_check.assertFalse( False, '当前城市:北京,首页糖豆接口返回状态为:{status_code}'.format( status_code=status_code))
def test_logo(self): """测试顶通logo是否展示""" self.driver.get(url) logo_is_dispayed = self.driver.is_display(HeaderLocator.LOGO) tt_check.assertTrue(logo_is_dispayed, "首页Logo是否显示:%s" % logo_is_dispayed)
def test_sugar_bean(self): """App首页糖豆接口@author:fangyu""" sugarBeanTextList = [] response = requests.get( sugar_bean_url + 'get?action=gethomepagenew&v=7.9.0&cid=201&latitude=39.937341&longitude=116.320197&random=1409' ) status_code = response.status_code if status_code == 200: pageLabelList = json.loads( response.text).get('data').get('PageLabelList') if pageLabelList: for label in pageLabelList: print(label) text = label['Text'] sugarBeanTextList.append(text) sugarBeanTextListStr = json.dumps(sugarBeanTextList, ensure_ascii=False) tt_check.assertTrue( True, '当前城市:北京,首页展示的糖豆为:{sugarBeanTextListStr}'.format( sugarBeanTextListStr=sugarBeanTextListStr)) else: tt_check.assertFalse(False, '当前城市:北京,首页糖豆接口返回空') else: tt_check.assertFalse( False, '当前城市:北京,首页糖豆接口返回状态为:{status_code}'.format( status_code=status_code))
def test_CarPrice(self): """测试首页价格糖豆,@author:xulanzhong""" price_expect = ['5万以下', '5-10万', '10-15万', '15万以上'] self.driver.get(url) self.driver.execute_script("window.scrollTo(0, 300)") self.driver.pause(3) carprice_li = self.driver.find_element(Locator_Home.carprive_list) carprice_links = carprice_li.find_elements_by_tag_name('a') price_actual = [] for carprice_link in carprice_links: price_actual.append(carprice_link.text) tt_check.assertEqual(sorted(price_actual), sorted(price_expect), "首页价格糖豆,期望价格是%s,实际是%s" % (price_expect, price_actual)) self.driver.click(Locator_Home.carprive_click) test_price = self.driver.is_display(Locator_Home.carprive_foot) tt_check.assertTrue(test_price,"列表页筛选条件0-5万,是否显示 %s" % test_price)
def test_logo(self): """测试首页logo是否展示,@author:xulanzhong""" self.driver.get(url) logo_is_dispayed = self.driver.is_display(locator.HeaderLocator.LOGO) self.driver.pause(3) tt_check.assertTrue(logo_is_dispayed, "首页Logo是否显示:%s" % logo_is_dispayed)
def test_brand_name(self): """测试首页我要买车-品牌跳转,@author:xulanzhong""" self.driver.get(url) self.driver.max_window() self.driver.find_element(locator.HeaderLocator.brand_name).click() self.driver.switch_to_window() tag_is_dispayed = self.driver.is_display(locator.HeaderLocator.bz_tag) self.driver.pause(3) tt_check.assertTrue(tag_is_dispayed, "列表页直营签是否显示:%s" % tag_is_dispayed)
def test_Isellcar2(self): """测试首页我要卖车按钮跳转,@author:xulanzhong""" self.driver.get(url) self.driver.max_window() self.driver.find_element(locator.HeaderLocator.Isellcarbutton).click() #self.driver.pause(3) sell_is_dispayed = self.driver.is_display(locator.HeaderLocator.sell_img) #self.driver.pause(3) tt_check.assertTrue(sell_is_dispayed, "我要卖车页是否显示:%s" % sell_is_dispayed)
def test_Isellcar3(self): """测试首页免费估价按钮跳转,@author:xulanzhong""" self.driver.get(url) self.driver.max_window() self.driver.find_element(locator.HeaderLocator.pinggu_button).click() #self.driver.pause(3) pinggu_is_dispayed = self.driver.is_display(locator.HeaderLocator.pinggu_img) #self.driver.pause(3) tt_check.assertTrue(pinggu_is_dispayed, "免费估价页是否显示:%s" % pinggu_is_dispayed)
def test_TCnew(self): """测试首页新车楼层-淘车新车跳转,@author:xulanzhong""" self.driver.get(url) self.driver.max_window() self.driver.find_element(locator.HeaderLocator.taoche_new).click() self.driver.pause(3) self.driver.switch_to_window() new_is_dispayed = self.driver.is_display(locator.HeaderLocator.new_img) self.driver.pause(3) tt_check.assertTrue(new_is_dispayed, "新车页品牌是否显示:%s" % new_is_dispayed)
def test_qgg_car(self): """测试首页全国购楼层-车名称-跳转,@author:xulanzhong""" self.driver.get(url) self.driver.max_window() self.driver.find_element(locator.HeaderLocator.car_name).click() self.driver.pause(3) self.driver.switch_to_window() img_is_dispayed = self.driver.is_display(locator.HeaderLocator.car_img) self.driver.pause(3) tt_check.assertTrue(img_is_dispayed, "详情页大图是否显示:%s" % img_is_dispayed)
def test_show_img(self): """测试首页买家秀楼层-首图跳转,@author:xulanzhong""" self.driver.get(url) self.driver.max_window() self.driver.find_element(locator.HeaderLocator.show_button).click() self.driver.pause(3) self.driver.switch_to_window() show_is_dispayed = self.driver.is_display(locator.HeaderLocator.show_title) self.driver.pause(3) tt_check.assertTrue(show_is_dispayed, "买家秀列表标题是否显示:%s" % show_is_dispayed)
def test_qgg(self): """测试首页全国购楼层-查看全部跳转,@author:xulanzhong""" self.driver.get(url) self.driver.max_window() self.driver.find_element(locator.HeaderLocator.qgg_see).click() self.driver.pause(3) self.driver.switch_to_window() tag_is_dispayed = self.driver.is_display(locator.HeaderLocator.qgg_tag) self.driver.pause(3) tt_check.assertTrue(tag_is_dispayed, "列表页全国购签是否显示:%s" % tag_is_dispayed)
def test_bm(self): """测试列表页搜索奔驰结果是否展示,@author:xulanzhong""" self.driver.get(url) self.driver.click(locator_m.Locator_BuyCar.bz_click) bz_is_dispayed = self.driver.is_display( locator_m.Locator_BuyCar.bz_list) tt_check.assertTrue(bz_is_dispayed, "宝马车源名称是否显示:%s" % bz_is_dispayed)
def newsale(self): """测试列表页点击今日上线,查看足迹 列表新标签,@author:xulanzhong""" self.driver.get(url) self.driver.click(locator_m.Locator_BuyCar.newsale) #bz_is_dispayed = self.driver.is_display(locator_m.Locator_BuyCar.newsale_foot) newsale_is_dispayed = self.driver.is_display(locator_m.Locator_BuyCar.newsale_label) tt_check.assertTrue(newsale_is_dispayed, "今日上线标签是否显示:%s" % newsale_is_dispayed)
def test_TC_tiyandian(self): """测试首页新车楼层-淘车体验店-跳转,@author:xulanzhong""" self.driver.get(url) self.driver.max_window() self.driver.find_element(locator.HeaderLocator.tiyandian).click() self.driver.pause(3) self.driver.switch_to_window() tiyandian_is_dispayed = self.driver.is_display( locator.HeaderLocator.tiyandian_name) self.driver.pause(3) tt_check.assertTrue(tiyandian_is_dispayed, "淘车体验店页重庆体验店是否显示:%s" % tiyandian_is_dispayed)
def test_fenqi(self): """测试首页新车楼层-分期购车-跳转,@author:xulanzhong""" self.driver.get(url) self.driver.max_window() self.driver.find_element(locator.HeaderLocator.fenqi_buy).click() self.driver.pause(3) self.driver.switch_to_window() fenqi_is_dispayed = self.driver.is_display( locator.HeaderLocator.fenqi_img) self.driver.pause(3) tt_check.assertTrue(fenqi_is_dispayed, "分期购车页新车专享是否显示:%s" % fenqi_is_dispayed)
def test_news_all(self): """测试首页资讯楼层-查看全部跳转,@author:xulanzhong""" self.driver.get(url) self.driver.max_window() self.driver.find_element(locator.HeaderLocator.news_see).click() self.driver.pause(3) self.driver.switch_to_window() news_is_dispayed = self.driver.is_display( locator.HeaderLocator.news_title) self.driver.pause(3) tt_check.assertTrue(news_is_dispayed, "淘车试驾标题是否显示:%s" % news_is_dispayed)
def test_contact(self): """测试首页底部联系我们-跳转,@author:xulanzhong""" self.driver.get(url) self.driver.max_window() self.driver.find_element(locator.HeaderLocator.contact_button).click() self.driver.pause(3) self.driver.switch_to_window() about_is_dispayed = self.driver.is_display( locator.HeaderLocator.about_title) self.driver.pause(3) tt_check.assertTrue(about_is_dispayed, "关于我们标题是否显示:%s" % about_is_dispayed)
def test_online_buy(self): """测试首页新车楼层-在线购车-跳转,@author:xulanzhong""" self.driver.get(url) self.driver.max_window() self.driver.find_element(locator.HeaderLocator.online_buy).click() self.driver.pause(3) self.driver.switch_to_window() online_is_dispayed = self.driver.is_display( locator.HeaderLocator.online_name) self.driver.pause(3) tt_check.assertTrue(online_is_dispayed, "在线购车页帮您分期是否显示:%s" % online_is_dispayed)
def test_price(self): """测试列表页点击三万内价格条件,结果是否展示,@author:xulanzhong""" self.driver.get(url) self.driver.click(locator_m.Locator_BuyCar.price_click) self.driver.pause(2) price_is_dispayed = self.driver.is_display( locator_m.Locator_BuyCar.price_list) tt_check.assertTrue(price_is_dispayed, "是否显示:%s" % price_is_dispayed)
def test_hot_serial(self): """买车列表页热门车系,热门品牌@author:fangyu""" serialNameMap = {} serialNameList = [] brandNameMap = {} brandNameList = [] resultList = [] self.driver.get(bugcar_url) hot_serial = self.driver.find_element( BuyCarLocator.HOT_SERIAL).find_elements_by_tag_name('li') if hot_serial: for hs_tab in hot_serial: hs = hs_tab.find_element_by_tag_name('a').text if hs == '热门车系': serial_name = self.driver.find_element( BuyCarLocator.HOT_SERIAL_NAME ).find_elements_by_tag_name('li') for sn in serial_name: snn = sn.find_element_by_tag_name('a').text serialNameList.append(snn) serialNameMap[hs] = serialNameList resultList.append(serialNameMap) elif hs == '热门品牌': brand_name = self.driver.find_element( BuyCarLocator.HOT_BRAND_NAME ).find_elements_by_tag_name('li') for bn in brand_name: bnn = bn.find_element_by_tag_name('a').get_attribute( 'title') brandNameList.append(bnn) brandNameMap[hs] = brandNameList resultList.append(brandNameMap) else: pass result_str = json.dumps(resultList, ensure_ascii=False) if resultList and len(resultList) > 0: tt_check.assertTrue( True, '列表页热门品牌或者热门车系展示正常,展示为{result_str}'.format( result_str=result_str)) else: tt_check.assertFalse(False, '列表页热门品牌或者热门车系数据为空') else: tt_check.assertFalse(False, '列表页热门品牌或者热门车系有数据为空')
def test_qgg(self): """测试全国购跳转是否正确,首页并显示足迹""" self.driver.get(url) self.driver.pause(2) self.driver.click(Locator_Home.flush_click) self.driver.pause(2) #self.driver.click(Locator_Home.sugar_qgg) test_qgg = self.driver.is_display(Locator_Home.test_qgg) tt_check.assertTrue(test_qgg, "列表页命中条件,是否显示: %s" % test_qgg)
def test_Hotsearch(self): """测试首页搜索,@author:xulanzhong""" self.driver.get(url) self.driver.pause(2) self.driver.click(Locator_Home.search) self.driver.pause(2) self.driver.click(Locator_Home.bzcar) test_bzcar = self.driver.is_display(Locator_Home.bzcar_foot) tt_check.assertTrue(test_bzcar, "列表页筛选条件保真车,是否显示 %s" % test_bzcar)
def test_buycar_Screening(self): """点击第一个品牌+车系,查看列表中第一个车是否是自己选择的 @author:dingdongdong""" self.driver.get(beijing_buycar_url) time.sleep(1) #获取品牌字母A codeList = self.driver.find_element( BuyCarTag.BUY_CAR_BRAND_CODE).find_elements_by_tag_name('li') brand_codeChoose = codeList[1].find_element_by_tag_name('a').text codeList[1].find_element_by_tag_name('a').click() print("选择的品牌字母为:", brand_codeChoose) #获取品牌字母A下的第一个品牌且点击 brand_name_choose = self.driver.find_element( BuyCarTag.BUY_CAR_BRAND_CODE_A).find_elements_by_tag_name('li') BN = brand_name_choose[0].find_element_by_tag_name('a').text print("选择的品牌为:", BN) time.sleep(1) brand_name_choose[0].find_element_by_tag_name('a').click() #获取奥迪下第一个车系 cx_name_choose = self.driver.find_element( BuyCarTag.CX_LIST).find_elements_by_tag_name('li') CX = cx_name_choose[1].find_element_by_tag_name('a').text print("你选择的车系为:", CX) cx_name_choose[1].find_element_by_tag_name('a').click() #实际筛选结果展示的品牌和车系是否和选择的一致 actual_brand = self.driver.find_element( BuyCarTag.Result_brand_list).get_attribute('title') print("页面实际展示的品牌为:", actual_brand) actual_cx = self.driver.find_element( BuyCarTag.Result_CX_list).get_attribute('title') tt_check.assertTrue(actual_cx, "实际展示的车系是 %s" % actual_cx) print("页面实际展示的车系为:", actual_cx) aa = self.driver.find_element(BuyCarTag.Result_CX_list).is_displayed() time.sleep(2) tt_check.assertEqual(BN, actual_brand, '搜索的品牌期望为%s, 页面实际展示的品牌为%s' % (BN, actual_brand)) #获取第一个车源title show_carOne_name_list = self.driver.find_element( BuyCarTag.show_carlist).find_element_by_tag_name( 'ul').find_elements_by_tag_name('li') show_carone_titleName = show_carOne_name_list[ 0].find_elements_by_tag_name('div') title_text_name = show_carone_titleName[0].find_element_by_tag_name( 'div').find_element_by_tag_name('a').get_attribute('title') print("第一个车源title名字为:", title_text_name) tt_check.assertTrue( title_text_name, "展示的名称如果有奥迪A6L,则检索的结果是正确的,实际展示的结果为:%s" % title_text_name)
def test_CarShop(self): """测试郑州首页店铺显示正确性,@author:xulanzhong""" self.driver.get(url) self.driver.pause(1) self.driver.execute_script("window.scrollTo(0, 600)") self.driver.pause(2) self.driver.click(Locator_Home.carshop_click) self.driver.pause(2) test_carshop = self.driver.is_display(Locator_Home.carshop_name) tt_check.assertTrue(test_carshop, "店铺首页,是否显示 %s" % test_carshop)
def test_ncar(self): """测试点击首页新车推荐,跳转新车是否包含新车签,@author:xulanzhong""" self.driver.get(url) self.driver.pause(2) self.driver.execute_script("window.scrollTo(0, 900)") self.driver.pause(2) self.driver.click(Locator_Home.ncar) self.driver.pause(2) test_ncar = self.driver.is_display(Locator_Home.ncar_label) tt_check.assertTrue(test_ncar, "新车签是否显示, %s" % test_ncar)
def test_page_click(self): """app首页、列表页、详情页点击检查@author:fangyu""" brandText = self.driver.find_element(HomeLoctor.BRAND_KEY).text print(brandText) self.driver.find_element(HomeLoctor.BRAND_KEY).click() classList = self.driver.find_element( HomeLoctor.CAR_LIST_SCREEN_ID).find_elements_by_class_name( 'android.widget.TextView') if classList: classText = classList[0].text print(classText) tt_check.assertEqual( brandText, classText, '首页选中品牌:{brandText},列表页展示品牌:{classText}'.format( brandText=brandText, classText=classText)) carList = self.driver.find_elements(HomeLoctor.CAR_INFO_IDS) if carList: carNameText = carList[0].text print("取到车源列表页第一辆车:{carNameText}".format( carNameText=carNameText)) carList[0].click() print("进入车源详情页") DetailCarNameText = self.driver.find_element( HomeLoctor.DETAIL_CAR_NAME).text print(DetailCarNameText) self.driver.swipeUpDown(0.9, 0.1) qggText = self.driver.find_element( HomeLoctor.QGG_FLOOR_ID).text if qggText: tt_check.assertTrue( True, "全国购店铺名称:{qggText}".format(qggText=qggText)) else: tt_check.assertFalse( False, "车源:{DetailCarNameText} 详情页没有全国购楼层".format( DetailCarNameText=DetailCarNameText)) else: print('没有取到车源列表数据') else: print('首页没有取到品牌')
def test_clean_select(self): """test选择筛选后,点击后面的清除全部按钮 @author:dingdongdong """ self.driver.get(beijing_buycar_url) time.sleep(1) # 获取品牌字母A codeList = self.driver.find_element( BuyCarTag.BUY_CAR_BRAND_CODE).find_elements_by_tag_name('li') brand_codeChoose = codeList[1].find_element_by_tag_name('a').text codeList[1].find_element_by_tag_name('a').click() print("选择的品牌字母为:", brand_codeChoose) # 获取品牌字母A下的第一个品牌且点击 brand_name_choose = self.driver.find_element( BuyCarTag.BUY_CAR_BRAND_CODE_A).find_elements_by_tag_name('li') BN = brand_name_choose[0].find_element_by_tag_name('a').text print("选择的品牌为:", BN) time.sleep(1) brand_name_choose[0].find_element_by_tag_name('a').click() # 获取奥迪下第一个车系 cx_name_choose = self.driver.find_element( BuyCarTag.CX_LIST).find_elements_by_tag_name('li') CX = cx_name_choose[1].find_element_by_tag_name('a').text cx_name_choose[1].find_element_by_tag_name('a').click() #检查面包屑展示的是否有北京二手车奥迪A6L show_carlist_top = self.driver.find_element( BuyCarTag.show_carlist_top).find_element_by_tag_name( 'div').find_elements_by_tag_name('a') list_top_text = show_carlist_top[3].text tt_check.assertTrue(list_top_text, "面包屑展示的名称是否为:%s" % list_top_text) #清除全部,检测面包屑应该展示为:北京二手车 Obtain_clear_btn = self.driver.find_element( BuyCarTag.chexing_choose).find_element_by_tag_name( 'ul').find_elements_by_tag_name('li') print("测试数据", Obtain_clear_btn) clear_btn = Obtain_clear_btn[2].find_element_by_tag_name('a').click() show_carlist_top = self.driver.find_element( BuyCarTag.show_carlist_top).find_element_by_tag_name( 'div').find_elements_by_tag_name('a') clear_list_top = show_carlist_top[1].text tt_check.assertTrue(clear_list_top, "清除后的面包屑展示的名称为:%s" % clear_list_top)
def test_Recommend(self): """测试点击首页推荐楼层今日上新....,跳转新车是否包含新车签,@author:xulanzhong""" self.driver.get(url) self.driver.pause(2) self.driver.execute_script("window.scrollTo(0, 900)") self.driver.pause(2) self.driver.click(Locator_Home.Recommend) self.driver.pause(2) test_Recommend = self.driver.is_display(Locator_Home.today_new) tt_check.assertTrue(test_Recommend, "今日上新签是否显示, %s" % test_Recommend) # def test_Newcar(self): # """测试默认品牌名称,@author:xulanzhong""" # # Newcar_expect = ['新车推荐', '开走吧', '分期购车'] # # self.driver.get(url) # # self.driver.execute_script("window.scrollTo(0, 900)") # # self.driver.pause(2) # # Newcar_li = self.driver.find_element(Locator_Home.Newcar_list) # Newcar_links = Newcar_li.find_elements_by_tag_name('a') # # Newcar_actual = [] # # for Newcar_link in Newcar_links: # Newcar_actual.append(Newcar_link.text) # # tt_check.assertEqual(sorted(Newcar_actual), sorted(Newcar_expect), # "淘车新车楼层,期望是%s,实际是%s" % (Newcar_expect, Newcar_actual)) # url = config.home_url # # # def test_recommend(self): # """测试首页推荐楼层显示及跳转是否正确,@author:xulanzhong""" # self.driver.get(home_url) # price_li = self.driver.find_element(HomePageLocator.BUY_CAR_PRICE) # price_links = price_li.find_elements_by_tag_name('a') # # # 遍历所有价格范围 # result = [] # for price_link in price_links: # try: # price = price_link.text # price_range = re.findall(r'\d+', price) # price_link.click() # # # 在新窗口判断筛选条件是否为选择的价格范围 # self.driver.switch_to_window() # self.driver.wait() # # filter_content = self.driver.find_element(BuyCarLocator.FILTER_SELETED) \ # .find_element_by_tag_name('a').text # filter_price_range = re.findall(r'\d+', filter_content) # tt_check.assertEqual(price_range, filter_price_range, # "所选价格范围%s,跳转后已选择的筛选条件是%s" % (price, filter_content)) # # except AssertionError as msg: # result.append(msg) # # finally: # # 重置driver # self.driver.switch_to_window() # self.driver.close_other_window() # # if result: # raise AssertionError(result)