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='无法打开确认支付页面')