コード例 #1
0
ファイル: test_buycar.py プロジェクト: boeai/mc
    def test_buycar_brand_img(self):
        """测试我要买车默认品牌的图片请求是否正常"""
        self.driver.get(home_url)
        brand_li = self.driver.find_element(HomePageLocator.BUY_CAR_BRAND)
        brand_links = brand_li.find_elements_by_tag_name('a')

        # 获取所有品牌名称和图片地址
        brand_set = {}
        for brand_link in brand_links:
            brand = brand_link.text
            if brand != '查看全部':
                img = brand_link.find_element_by_tag_name('img').get_attribute(
                    'src')
                brand_set[brand] = img

        # 循环所有图片地址,判断请求状态码是否为200
        result = []
        for brand, src in brand_set.items():
            try:
                img_status_code = requests.get(src).status_code
                tt_check.assertEqual(
                    200, img_status_code,
                    "品牌%s的图片请求状态,期望是200,实际是%s" % (brand, img_status_code))

            except AssertionError as msg:
                result.append(msg)

        if result:
            raise AssertionError(result)
コード例 #2
0
 def test_sellcar_title(self):
     """测试我要卖车区域Title显示的是否正确@author:zhangyanli"""
     self.driver.get(sellcar_url)
     sellcar_title = self.driver.find_element(
         SellCar_Locator.SELL_CAR_TITLE).text
     tt_check.assertEqual("卖车", sellcar_title,
                          "我要卖车区域的title,期望是卖车,实际是%s" % sellcar_title)
コード例 #3
0
    def test_ad_displayed(self):
        """测试广告位图片请求是否正常"""
        self.driver.get(home_url)
        ads = self.driver.find_elements(HomePageLocator.FOCUS_PIC_IMG)

        ad_srcs = []
        for ad in ads:
            ad_src = ad.get_attribute('src')
            ad_srcs.append(ad_src)

        if not ad_srcs:
            raise Exception("未找到轮播广告图元素")

        # 遍历所有焦点图的src,查看访问是否正常
        result = []
        for ad_src in ad_srcs:
            try:
                ad_url_status = requests.get(ad_src).status_code
                tt_check.assertEqual(200, ad_url_status,
                                     "焦点图广告请求状态码,期望是200,实际是%d" % ad_url_status)

            except AssertionError as msg:
                result.append(msg)

        if result:
            raise AssertionError(result)
コード例 #4
0
ファイル: test_pinggu.py プロジェクト: boeai/mc
 def test_pinggu_title(self):
     """测试评估区域Title显示的是否正确@author:zhangyanli"""
     self.driver.get(pinggu_url)
     pinggu_title = self.driver.find_element(
         PingGu_Locator.PINGGU_TITLE).text
     tt_check.assertEqual("估价", pinggu_title,
                          "评估区域的title,期望是估价,实际是%s" % pinggu_title)
コード例 #5
0
ファイル: test_buycar.py プロジェクト: boeai/mc
    def test_buycar_price_jump(self):
        """测试我要买车价格筛选跳转是否正确"""
        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)
コード例 #6
0
ファイル: test_CarPrice.py プロジェクト: boeai/mc
    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)
コード例 #7
0
ファイル: test_detail_crawler.py プロジェクト: boeai/mc
    def test_M_detail(self):
        """遍历M详情页链接并验证状态码,@author:xulanzhong"""
        self.driver.get(buycar_url)
        self.driver.find_element(locator_m.Locator_Home.car_img).click()
        pagesource = self.driver.get_url()
        print('当前页面的url是:', pagesource)
        #self.driver.max_window()
        # 匹配出所有a元素里的链接
        urls = self.driver.find_elements(locator_m.Locator_Home.xpath_all)
        print("当前页面的可用链接如下:")

        for url in urls:
           u = url.get_attribute('href')
           if u == 'None':  # 排除没有链接的元素
               continue
           try:
               r = requests.get(u)
               status = r.status_code
               tt_check.assertEqual(status, 200, "请求是否成功:状态码%s" % status)
           except:
               # 把测试不通过的url显示出来
               print('Error url  : ' + str(u) + ':++++++++不是正确链接+++++++')  # 把测试不通过的url显示出来
           else:
               # 测试通过的url展示出来
               print(u)
コード例 #8
0
ファイル: test_detail_crawler.py プロジェクト: boeai/mc
    def test_pc_detail(self):
        """测试列表页爬取链接并验证状态码,@author:xulanzhong"""
        self.driver.get(buycar_url)
        self.driver.max_window()
        self.driver.find_element(locator.HeaderLocator.first_car).click()
        self.driver.switch_to_window()
        pagesource = self.driver.get_url()
        print('当前页面的url是:', pagesource)
        urls = self.driver.find_elements(
            locator.HeaderLocator.xpath_all)  # 匹配出所有a元素里的链接
        print("当前页面的可用链接如下:")

        for url in urls:
            u = url.get_attribute('href')
            if u == 'None':  # 很多的a元素没有链接,所有是None
                continue
            try:
                r = requests.get(u)
                status = r.status_code
                tt_check.assertEqual(status, 200, "请求是否成功:状态码%s" % status)
            except:
                print('Error url  : ' + str(u) +
                      ':++++++++不是正确链接+++++++')  # 把测试不通过的url显示出来
            else:
                print(u)  # 测试通过的url展示出来
コード例 #9
0
 def test_getbaozhencar():
     """测试保真车获取接口@author:zhaoliuming"""
     api_tested = default_url + "/ajax/jsonp/getbaozhencar.ashx?cid=201&tid=1&callback=jQuery112402816550473892061_1564803591809"
     response = requests.get(api_tested)
     LOG.info("【访问】" + api_tested)
     status = response.status_code
     tt_check.assertEqual(status, 200, "请求是否成功:状态码%s" % status)
     tt_check.assertRegex(response.text, "成功", "返回是否包含成功")
コード例 #10
0
ファイル: test_news.py プロジェクト: boeai/mc
    def test_nav_selected(self):
        """测试访问资讯站点时导航中资讯是否高亮"""
        # 打开资讯站点
        self.driver.get(url)
        status_actual = self.driver.find_element(
            NewsLocator.NAV_NEWS).get_attribute('class')

        tt_check.assertEqual(status_actual, 'current', "导航中资讯是否高亮显示")
コード例 #11
0
ファイル: test_buycar.py プロジェクト: boeai/mc
    def test_buycar_title(self):
        """测试我要买车区域我要买车title显示是否正确"""
        self.driver.get(home_url)
        buycar_title = self.driver.find_element(
            HomePageLocator.BUY_CAR_TITLE).text

        tt_check.assertEqual("我要买车", buycar_title,
                             "我要买车区域的title,期望是我要买车,实际是%s" % buycar_title)
コード例 #12
0
ファイル: test_sellcar.py プロジェクト: boeai/mc
    def test_sellcar_title(self):
        """测试我要卖车区域Title显示的是否正确"""
        self.driver.get(home_url)
        sellcar_title = self.driver.find_element(
            HomePageLocator.SELL_CAR_TITLE).text

        tt_check.assertEqual("我要卖车", sellcar_title,
                             "我要卖车区域的title,期望是我要卖车,实际是%s" % sellcar_title)
コード例 #13
0
ファイル: test_header.py プロジェクト: boeai/mc
    def test_tchome(self):
        """测试顶通淘车首页链接跳转的正确性"""
        self.driver.get(url)
        self.driver.click(HeaderLocator.TC_HOME)
        url1 = self.driver.get_url()
        url2 = "https://www.taoche.com/"

        tt_check.assertEqual(url1, url2,
                             "测试顶通淘车首页的链接跳转, 期望是%s,实际是%s" % (url2, url1))
コード例 #14
0
ファイル: test_buycarlink.py プロジェクト: boeai/mc
 def test_Ibuycar(self):
     """测试首页我要买车跳转,@author:xulanzhong"""
     self.driver.get(url)
     self.driver.max_window()
     self.driver.find_element(locator.HeaderLocator.Ibuycar).click()
     self.driver.pause(3)
     actual_bjbc = self.driver.find_element(locator.HeaderLocator.BJbuycar).text
     expect_bjbc = '北京二手车'
     tt_check.assertEqual(expect_bjbc, actual_bjbc,"二手车列表面包屑,期望是%s,实际是%s" % (expect_bjbc, actual_bjbc))
コード例 #15
0
ファイル: test_buycar.py プロジェクト: boeai/mc
    def test_buycar_jump(self):
        """测试我要买车title跳转"""
        self.driver.get(home_url)
        self.driver.click(HomePageLocator.BUY_CAR_TITLE)
        nav_buycar_class = self.driver.find_element(
            HeaderLocator.NAV_BUYCAR).get_attribute('class')

        tt_check.assertEqual('current', nav_buycar_class,
                             "测试点击我要买车,跳转后的页面导航买车是否为选中状态")
コード例 #16
0
ファイル: test_sellcar.py プロジェクト: boeai/mc
    def test_sellcar_submit(self):
        """测试我要卖车区域title跳转"""
        self.driver.get(home_url)
        self.driver.click(HomePageLocator.SELL_CAR_SUBMIT)
        nav_sellcar_class = self.driver.find_element(
            HeaderLocator.NAV_SELLCAR).get_attribute('class')

        tt_check.assertEqual('current', nav_sellcar_class,
                             "测试点击我要卖车按钮,跳转后的页面导航卖车是否为选中状态")
コード例 #17
0
ファイル: test_endhot.py プロジェクト: boeai/mc
 def test_car_find(self):
     """测试首页底部找二手车-跳转,@author:xulanzhong"""
     self.driver.get(url)
     self.driver.max_window()
     car_li = self.driver.find_element(
         locator.HeaderLocator.find_car).get_attribute('href')
     r = requests.get(car_li)
     status = r.status_code
     tt_check.assertEqual(status, 200, "请求是否成功:状态码%s" % status)
コード例 #18
0
ファイル: test_endhot.py プロジェクト: boeai/mc
 def test_hot_city(self):
     """测试首页底部热门城市-跳转,@author:xulanzhong"""
     self.driver.get(url)
     self.driver.max_window()
     shanghai_li = self.driver.find_element(
         locator.HeaderLocator.hot_shanghai).get_attribute('href')
     r = requests.get(shanghai_li)
     status = r.status_code
     tt_check.assertEqual(status, 200, "请求是否成功:状态码%s" % status)
コード例 #19
0
ファイル: test_sellcar.py プロジェクト: boeai/mc
    def test_sellcar_pinggu_nophone(self):
        """测试我要卖车区域不输入电话号码时免费评估submit跳转"""
        self.driver.get(home_url)
        self.driver.click(HomePageLocator.SELL_CAR_PINGU)

        url_actual = self.driver.get_url()
        url_expected = config.pinggu_url

        tt_check.assertEqual(url_actual, url_expected,
                             "测试点击免费评估按钮,跳转后的页面是否为评估url")
コード例 #20
0
ファイル: test_about.py プロジェクト: boeai/mc
 def test_B_TV(self):
     """测试首页底部广播电视许可证-跳转,@author:xulanzhong"""
     self.driver.get(url)
     self.driver.max_window()
     TV_li = self.driver.find_element(
         locator.HeaderLocator.TV_url).get_attribute('href')
     # 获取广播电视许可证的请求状态
     r = requests.get(TV_li)
     status = r.status_code
     tt_check.assertEqual(status, 200, "请求是否成功:状态码%s" % status)
コード例 #21
0
    def test_title(self):
        """测试首页Title显示是否正确"""
        self.driver.get(home_url)
        home_page_title_actual = self.driver.get_title()
        home_page_title_expected = "二手车市场_二手车交易市场_二手车平台-淘车网"

        tt_check.assertEqual(
            home_page_title_actual, home_page_title_expected,
            "页面title期望是%s,实际是%s" %
            (home_page_title_expected, home_page_title_actual))
コード例 #22
0
ファイル: test_buycarlink.py プロジェクト: boeai/mc
 def test_car_price(self):
     """测试首页我要买车-价格跳转,@author:xulanzhong"""
     self.driver.get(url)
     self.driver.max_window()
     self.driver.find_element(locator.HeaderLocator.Car_price).click()
     self.driver.pause(3)
     self.driver.switch_to_window()
     actual_price_path = self.driver.find_element(locator.HeaderLocator.Price_path).title
     expect_price_path = '8-10万'
     tt_check.assertEqual(expect_price_path, actual_price_path,"二手车列表面包屑,期望是%s,实际是%s" % (expect_price_path, actual_price_path))
コード例 #23
0
ファイル: test_about.py プロジェクト: boeai/mc
 def test_B_lisence(self):
     """测试首页底部营业执照-跳转,@author:xulanzhong"""
     self.driver.get(url)
     self.driver.max_window()
     B_li = self.driver.find_element(
         locator.HeaderLocator.license_url).get_attribute('href')
     # 获取营业执照的请求状态
     r = requests.get(B_li)
     status = r.status_code
     print(status)
     tt_check.assertEqual(status, 200, "请求是否成功:状态码%s" % status)
コード例 #24
0
ファイル: test_buycarlink.py プロジェクト: boeai/mc
 def test_car_level(self):
     """测试首页我要买车-级别跳转,@author:xulanzhong"""
     self.driver.get(url)
     self.driver.max_window()
     self.driver.find_element(locator.HeaderLocator.Car_level).click()
     self.driver.pause(3)
     self.driver.switch_to_window()
     actual_level_path = self.driver.find_element(locator.HeaderLocator.Level_path).text
     expect_level_path = '小型车'
     tt_check.assertEqual(expect_level_path, actual_level_path,
                          "二手车列表面包屑,期望是%s,实际是%s" % (expect_level_path, actual_level_path))
コード例 #25
0
ファイル: test_sellcar.py プロジェクト: boeai/mc
    def test_sellcar_pinggu_phone(self):
        """测试我要卖车区域输入电话号码时免费评估submit跳转"""
        self.driver.get(home_url)
        phone = '13000000000'
        self.driver.send_keys(HomePageLocator.SELL_CAR_PHONE, phone)
        self.driver.click(HomePageLocator.SELL_CAR_PINGU)

        url_actual = self.driver.get_url()
        url_expected = config.pinggu_url + '?phone=' + phone

        tt_check.assertEqual(url_actual, url_expected,
                             "测试输入手机号点击免费评估按钮,跳转后的页面地址是否包含手机号")
コード例 #26
0
ファイル: test_header.py プロジェクト: boeai/mc
    def test_nav_default(self):
        """测试首页导航默认是否是首页"""
        self.driver.get(url)
        navigation_default = self.driver.find_element(
            HeaderLocator.NAV_DEFAULT)
        navigation_default_expected = "首页"
        navigation_default_actual = navigation_default.text

        tt_check.assertEqual(
            navigation_default_actual, navigation_default_expected,
            "导航默认,期望为%s,实际为%s" %
            (navigation_default_expected, navigation_default_actual))
コード例 #27
0
ファイル: test_buycar.py プロジェクト: boeai/mc
    def test_buycar_level_jump(self):
        """测试我要买车级别筛选跳转是否正确"""
        self.driver.get(home_url)
        level_li = self.driver.find_element(HomePageLocator.BUY_CAR_LEVEL)
        level_links = level_li.find_elements_by_tag_name('a')

        # 遍历所有级别
        result = []
        for level_link in level_links:
            try:
                level = level_link.text
                level_link.click()

                # 在新窗口判断筛选条件是否选中了点击的级别
                self.driver.switch_to_window()
                self.driver.wait()

                # 遍历已选择的筛选条件
                filters = []
                filter_elements = self.driver.find_element(BuyCarLocator.FILTER_SELETED) \
                    .find_elements_by_tag_name('a')
                for filter_element in filter_elements:
                    filter_name = filter_element.get_attribute('title')
                    if filter_name:
                        filters.append(filter_name)

                if level == "准新车":
                    level_expected = ["2年内", "1万公里内"]

                elif level == "练手车":
                    level_expected = ["3-5万"]

                elif level == "SUV":
                    level_expected = ["小型SUV+紧凑型SUV+中型SUV+中大型SUV+大型SUV"]

                else:
                    level_expected = level.split()

                tt_check.assertEqual(
                    level_expected, filters,
                    "所选级别是%s,跳转后已选择的筛选条件是%s" % (level, filters))

            except AssertionError as msg:
                result.append(msg)

            finally:
                # 重置driver
                self.driver.switch_to_window()
                self.driver.close_other_window()

        if result:
            raise AssertionError(result)
コード例 #28
0
ファイル: test_car_list.py プロジェクト: boeai/mc
 def search_car(self):
     """买车列表页搜索功能@author:fangyu"""
     self.driver.get(bugcar_url)
     self.driver.find_element(
         BuyCarLocator.SEARCH_KEY_WORD).send_keys(brand_name)
     self.driver.find_element(BuyCarLocator.SEARCH_ACTION).click()
     title = self.driver.find_element(
         BuyCarLocator.SEARCH_RESULT).get_attribute('title')
     time.sleep(1)
     tt_check.assertEqual(
         title, brand_name,
         '搜索车:{brand_name},检索结果:{title}'.format(brand_name=brand_name,
                                                title=title))
コード例 #29
0
    def test_floor(self):
        """测试首页楼层显示是否正确"""
        floors_expected = ["全国购", "淘车推荐", "品牌认证车", "淘车新车", "资讯"]
        floors_actual = []
        self.driver.get(home_url)
        floors_spans = self.driver.find_elements(HomePageLocator.FLOORS)

        for floor in floors_spans:
            # 排除不确定的楼层
            if floor.text != '商家急售车':
                floors_actual.append(floor.text)

        tt_check.assertEqual(floors_actual, floors_expected,
                             "首页楼层期望是%s,实际是%s" % (floors_expected, floors_actual))
コード例 #30
0
ファイル: test_header.py プロジェクト: boeai/mc
    def test_nav_menu(self):
        """测试首页导航显示是否正确"""
        navigation_expected = ["首页", "买车", "卖车", "分期", "资讯", "保险", "新车"]
        navigation_actual = []

        self.driver.get(url)
        navigation_bar = self.driver.find_element(HeaderLocator.NAV_MENU)
        navigation_links = navigation_bar.find_elements_by_tag_name('a')

        for navigation in navigation_links:
            navigation_actual.append(navigation.text)

        tt_check.assertEqual(
            navigation_actual, navigation_expected,
            "导航期望是%s,实际是%s" % (navigation_expected, navigation_actual))