def test_visit_webtours(self):
        # 根据被测接口的实际情况,合理的添加HTTP头
        # header = {'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        #    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; rv:29.0) Gecko/20100101 Firefox/29.0'
        #    }
        logger.info('正在发起GET请求...')
        response = self.http.get(self.url, (self.params))
        response_body = response[0]
        response_body = response_body.decode('utf-8')

        logger.info('正在解析返回结果')

        # 解析HTML文档
        parser = MyHTMLParser(strict=False)
        parser.feed(response_body)

        # 比较结果
        starttag_data = parser.get_starttag_data()
        i = 0
        for data_list in starttag_data:
            if data_list[0] == 'title' and data_list[1] == 'Web Tours':
                i = i + 1

        self.assertNotEqual(str(i),
                            self.expected_result['result'],
                            msg='访问WebTours失败')
    def test_to_buy_goods(self):
        headers = cookie
        self.http.set_header(headers)

        self.params['serial'] = global_serial

        logger.info('正在发起GET请求...')
        self.params = urllib.parse.urlencode(
            self.params)  # 将参数转为url编码字符串# 注意,此处params为字典类型的数据
        response = self.http.get(self.url, self.params)
        status_code = response[2]
        response_body = response[0].decode('utf-8')

        logger.info('正在解析返回结果:%s' % response_body)

        # 解析HTML文档
        parser = MyHTMLParser(strict=False)
        parser.feed(response_body)
        starttag_data = parser.get_starttag_data()

        tab_page_title = ''
        for data in starttag_data:
            if data[1] == self.expected_result['tab_page_title']:
                tab_page_title = data[1]
                break

        # 断言
        self.assertEqual(status_code,
                         self.expected_result['status'],
                         msg='http状态码status不等于200')
        self.assertEqual(tab_page_title,
                         self.expected_result['tab_page_title'],
                         msg='无法打开商品详情')
    def test_click_goods(self):
        headers = cookie
        self.http.set_header(headers)

        mall_goods_id = self.params['id']

        logger.info('正在发起GET请求...')
        self.params['serial'] = global_serial
        self.params = urllib.parse.urlencode(
            self.params)  # 将参数转为url编码字符串# 注意,此处params为字典类型的数据
        response = self.http.get(self.url, self.params)
        status_code = response[2]
        # logger.info('正在解析返回结果:%s' % response[0].decode('utf-8'))

        # 解析HTML文档
        parser = MyHTMLParser(strict=False)
        parser.feed(response[0].decode('utf-8'))
        starttag_data = parser.get_starttag_data()

        query = 'SELECT name FROM mall_goods WHERE id=%s'
        data = (mall_goods_id, )
        mall_goods_name = saofudb.select_one_record(query, data)
        mall_goods_name = mall_goods_name[0]
        self.expected_result['goods_name'] = mall_goods_name

        goods_name = ''
        for data in starttag_data:
            if data[1].find(mall_goods_name) != -1:
                goods_name = data[1].replace('\r', '')
                goods_name = goods_name.replace('\n', '')
                goods_name = goods_name.replace('\t', '')

        # 断言
        self.assertEqual(status_code,
                         self.expected_result['status'],
                         msg='http状态码status不等于200')
        self.assertEqual(goods_name,
                         self.expected_result['goods_name'],
                         msg='无法打开商品详情')
    def test_pay5(self):
        headers = cookie
        self.http.set_header(headers)

        self.params['orderId'] = CMOrder.attach
        self.params['serial'] = global_serial

        logger.info('正在发起GET请求...')
        self.params = urllib.parse.urlencode(
            self.params)  # 将参数转为url编码字符串# 注意,此处params为字典类型的数据
        response = self.http.get(self.url, self.params)
        response_headers = response[1]
        response_body = response[0].decode('utf-8')
        # logger.info(response_body)

        # 解析HTML文档
        parser = MyHTMLParser(strict=False)
        parser.feed(response_body)
        starttag_data = parser.get_starttag_data()

        page_title = ''
        button_name = ''
        for data in starttag_data:
            if data[1] == self.expected_result['page_title']:
                page_title = data[1]
            if data[1] == self.expected_result['button_name']:
                button_name = data[1]
                break

        # 断言
        self.assertEqual(page_title,
                         self.expected_result['page_title'],
                         msg='打开页面不是储值卡支付界面')
        self.assertEqual(button_name,
                         self.expected_result['button_name'],
                         msg='无法打开确认支付页面')