def test_login_pos(self): # 查询设备DeviceId,SerialNo LoginPos.operator_id = int(self.params['id']) query = 'SELECT branch_id, name, number FROM account_operator WHERE id = %s' data = (self.params['id'], ) result = saofudb.select_one_record(query, data) branch_id = result[0] self.expected_result['operator']['name'] = result[1] self.expected_result['operator']['number'] = result[2] query = 'SELECT device_no, serial_no FROM device WHERE shop_branch_id = %s' data = (branch_id, ) result = saofudb.select_one_record(query, data) LoginPos.device_id = result[0] LoginPos.serial_no = result[1] self.expected_result['operator']['id'] = int(self.params['id']) # 添加请求头 headers = { 'DeviceId': LoginPos.device_id, 'SerialNo': LoginPos.serial_no, 'Content-Type': 'application/json;charset=utf-8', 'ProductVersion': product_version, 'ProtocolVersion': protocol_version } self.http.set_header(headers) logger.info('正在发起POST请求...') self.params = json.dumps(self.params) self.params = self.params.encode('utf-8') response = self.http.post(self.url, self.params) response_body = response[0].decode('utf-8') response_body = json.loads(response_body) logger.info('正在解析返回结果:%s' % response) LoginPos.token = response_body['token'] # 断言 self.assertEqual(response_body['code'], self.expected_result['code'], msg='code不为4001') self.assertEqual(response_body['message'], self.expected_result['message'], msg='message 不等于“成功”') self.assertEqual(response_body['operator']['id'], self.expected_result['operator']['id'], msg='operator_id 错误') self.assertEqual(response_body['operator']['name'], self.expected_result['operator']['name'], msg='operator_name错误') self.assertEqual(response_body['operator']['number'], self.expected_result['operator']['number'], msg='operator_number错误') self.assertEqual(response_body['reason'], self.expected_result['reason'], msg='登录不成功 reason不等于“成功”') self.assertEqual(response_body['success'], bool(self.expected_result['success']), msg='success不等于True')
def test_add_to_cart(self): headers = cookie self.http.set_header(headers) self.params['serial'] = global_serial self.params['openId'] = global_openId self.expected_result['amount'] = self.params['amount'] self.expected_result['mall_goods_id'] = self.params['mallGoodsId'] # 提取customer_id供断言使用 query = 'SELECT id FROM customer WHERE channel_serial=%s' data = (self.params['openId'], ) customer_id = saofudb.select_one_record(query, data) customer_id = customer_id[0] # 提取shop_id供断言使用 query = 'SELECT id FROM shop WHERE serial=%s' data = (global_serial, ) shop_id = saofudb.select_one_record(query, data) self.expected_result['shop_id'] = shop_id[0] logger.info('正在发起POST请求...') self.params = urllib.parse.urlencode( self.params) # 将参数转为url编码字符串# 注意,此处params为字典类型的数据 self.params = self.params.encode('utf-8') response = self.http.post(self.url, self.params) response = response[0].decode('utf-8') response = json.loads(response) logger.info('正在解析返回结果:%s' % response) # 断言 self.assertEqual(response['success'], bool(self.expected_result['success']), '假入购物车失败,success不为True') query = 'SELECT amount, mall_goods_id, shop_id, closed, id FROM mall_shopping_cart WHERE customer_id = %s and closed=%s ' \ 'ORDER BY id DESC LIMIT 1' data = (customer_id, 1) result = saofudb.select_one_record(query, data) self.assertEqual(result[0], self.expected_result['amount'], msg='购物车商品数amount存储错误') self.assertEqual(result[1], self.expected_result['mall_goods_id'], msg='购物车商品mall_goods_id存储错误') self.assertEqual(result[2], self.expected_result['shop_id'], msg='购物车商户shop_id存储错误') self.assertEqual(result[3], self.expected_result['closed'], msg='购物车closed存储错误') AddToCart.strid = result[4]
def setUp(self): # 获取客户id和姓名,shopId query = 'SELECT id FROM customer WHERE channel_serial=%s' self.params['openId'] = global_openId data = (self.params['openId'], ) result = saofudb.select_one_record(query, data) customer_id = result[0] # 查询会员账户余额,积分等相关信息 query = 'SELECT balance, bonus, sum_amount_expend, sum_bonus_expend, balance_total FROM customer_account WHERE customer_id = %s' data = (customer_id, ) result = saofudb.select_one_record(query, data) bonus = result[1] # 会员积分
def setUp(self): # 初始化购物车数据 query = 'SELECT id FROM customer WHERE channel_serial=%s' data = (global_openId, ) customer_id = saofudb.select_one_record(query, data) customer_id = customer_id[0] query = 'UPDATE mall_shopping_cart SET amount = 0 WHERE customer_id = %s and closed=1' % customer_id saofudb.execute_update(query)
def setUp(self): # 判断代金券\折扣券是否有剩余库存,是否下架 logger.info(self.url) str_list = self.url.split('/') coupon_serial = str_list[3] query = 'SELECT sku_quantity, listing FROM base_info WHERE serial = %s' data = (coupon_serial, ) result = saofudb.select_one_record(query, data) sku_quantity = result[0] ison = result[1] if sku_quantity == 1: query = 'UPDATE base_info SET sku_quantity = 100000000' saofudb.execute_update(query) if ison == 0: query = 'UPDATE base_info SET listing = 1' saofudb.execute_update(query)
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_del_from_cart(self): headers = cookie self.http.set_header(headers) self.params['strIds'] = AddToCart.strid self.params['serial'] = global_serial logger.info('正在发起POST请求...') self.params = urllib.parse.urlencode( self.params) # 将参数转为url编码字符串# 注意,此处params为字典类型的数据 self.params = self.params.encode('utf-8') response = self.http.post(self.url, self.params) response = response[0].decode('utf-8') response = json.loads(response) logger.info('正在解析返回结果:%s' % response) query = 'SELECT amount, mall_goods_id, shop_id, closed, id FROM mall_shopping_cart WHERE id=%s' data = (AddToCart.strid, ) result = saofudb.select_one_record(query, data) # 断言 self.assertEqual(response['success'], bool(self.expected_result['success']), '商品移出购物车失败,success不为True') self.assertEqual(result, None, msg='实际未删除购物车记录')
def test_account_pay_with_point_discount(self): headers = cookie self.http.set_header(headers) self.params['productOrderId'] = CMOrder.attach self.params['openId'] = global_openId # 获取商品订单id query = 'SELECT id FROM trade_order WHERE product_order_id=%s' data = (self.params['productOrderId'], ) result = saofudb.select_one_record(query, data) self.params['orderId'] = result[0] order_id = result[0] # 获取客户id和姓名,shopId query = 'SELECT id, name, shop_id FROM customer WHERE channel_serial=%s' data = (self.params['openId'], ) result = saofudb.select_one_record(query, data) self.params['customerId'] = result[0] customer_id = result[0] self.params['customerName'] = result[1] self.params['shopId'] = result[2] shop_id = result[2] # 查询会员账户余额,积分等相关信息 query = 'SELECT balance, bonus, sum_amount_expend, sum_bonus_expend, balance_total FROM customer_account WHERE customer_id = %s' data = (customer_id, ) result = saofudb.select_one_record(query, data) balance_old = result[0] # 会员账户余额,单位:分 bonus_old = result[1] # 会员积分 sum_amount_expend_old = result[2] # 总花费金额,单位:分 sum_bonus_expend_old = result[3] # 总花费积分 logger.info('正在发起POST请求...') self.params = urllib.parse.urlencode( self.params) # 将参数转为url编码字符串# 注意,此处params为字典类型的数据 self.params = self.params.encode('utf-8') response = self.http.post(self.url, self.params) response = response[0].decode('utf-8') response = json.loads(response) logger.info('正在解析返回结果:%s' % response) # 查询会员账户余额,积分等相关信息 query = 'SELECT balance, bonus, sum_amount_expend, sum_bonus_expend, balance_total FROM customer_account WHERE customer_id = %s' data = (customer_id, ) result = saofudb.select_one_record(query, data) balance_new = result[0] # 会员账户余额,单位:分 bonus_new = result[1] # 会员积分 sum_amount_expend_new = result[2] # 总花费金额,单位:分 sum_bonus_expend_new = result[3] # 总花费积分 # 查询实付金额 query = 'SELECT receipt_fee FROM trade_order WHERE id = %s' data = (order_id, ) result = saofudb.select_one_record(query, data) receipt_fee_new = result[0] query = 'SELECT price FROM mall_goods WHERE id = %s' data = (CMOrder.mall_goods_id, ) result = saofudb.select_one_record(query, data) goods_price = result[0] # 查询运费 query = 'SELECT deliver_fee FROM mall_config WHERE shop_id = %s' data = (shop_id, ) result = saofudb.select_one_record(query, data) deliver_fee = result[0] self.expected_result['receipt_fee'] = CMOrder.amount * goods_price * ( 100 - GetInCoupon.discount) / 10.0 + deliver_fee self.expected_result[ 'balance'] = balance_old - self.expected_result['receipt_fee'] self.expected_result['bonus'] = bonus_old self.expected_result[ 'sum_amount_expend'] = sum_amount_expend_old + self.expected_result[ 'receipt_fee'] self.expected_result['sum_bonus_expend'] = sum_bonus_expend_old # 断言 self.assertEqual(response['success'], bool(self.expected_result['success']), '储值卡支付失败(使用会员账户支付,不使用任何优惠)') self.assertEqual(receipt_fee_new, self.expected_result['receipt_fee'], msg='消费者实付金额计算错误') self.assertEqual(balance_new, self.expected_result['balance'], msg='消费者余额计算错误') self.assertEqual(bonus_new, self.expected_result['bonus'], msg='消费者积分计算错误') self.assertEqual(sum_amount_expend_new, self.expected_result['sum_amount_expend'], msg='消费者总花费金额计算错误') self.assertEqual(sum_bonus_expend_new, self.expected_result['sum_bonus_expend'], msg='消费者总花费积分计算错误') self.assertEqual( record_num, self.expected_result['coupon_weixin_verification_record'], msg='折扣券核销不成功')
def test_plist_default(self): content_type = { 'Content-Type': 'application/x-www-form-urlencoded', 'charset': 'utf-8' } headers = content_type.copy() #cookie = {'Cookie':'10549840601068216320=ous64uFCCLMyXYDJ-MkNilyCI5C'} headers.update(cookie) self.http.set_header(headers) logger.info('正在发起POST请求...') self.params['serial'] = global_serial self.params = urllib.parse.urlencode( self.params) # 将参数转为url编码字符串# 注意,此处params为字典类型的数据 self.params = self.params.encode('utf-8') response = self.http.post(self.url, self.params) PList.step_output = response # 保存返回结果供其它接口使用 response = response[0].decode('utf-8') response = json.loads(response) logger.info('正在解析返回结果:%s' % response) # 断言 query = 'SELECT COUNT(*) FROM mall_goods AS mg ' \ 'JOIN mall_goods_cate AS mgc ON mg.cate_id=mgc.id ' \ 'JOIN template_cate AS tc ON tc.cate_id=mgc.id AND tc.template_id=1 AND tc.status=1 ' \ 'WHERE mg.shop_id=%s AND mg.del_flag=%s AND mg.status=%s AND mg.business_id NOT IN (%s, %s)' data = (42, 0, 1, 1, 2) result = saofudb.select_one_record(query, data) totalRows = result[0] totalPages = totalRows // int(self.expected_result['pageSize']) + 1 self.assertEqual(response['pageInfo']['currentPage'], self.expected_result['currentPage'], msg='currentPage不等于1') self.assertEqual(response['pageInfo']['pageSize'], self.expected_result['pageSize'], msg='pageSize不等于10') self.assertEqual(response['pageInfo']['pageStartRow'], self.expected_result['pageStartRow'], msg='pageStartRow不等于0') self.assertEqual(response['pageInfo']['pagination'], bool(self.expected_result['pagination']), msg='pagination不为True') self.assertEqual(response['pageInfo']['totalPages'], totalPages, msg='totalPages错误') self.assertEqual(response['pageInfo']['totalRows'], totalRows, msg='totalRows错误') query = 'SELECT sku_quantity FROM mall_goods WHERE id=%s' data = (26838, ) result = saofudb.select_one_record(query, data) skuQuantity1 = result[0] query = 'SELECT sku_quantity FROM mall_goods WHERE id=%s' data = (26839, ) result = saofudb.select_one_record(query, data) skuQuantity2 = result[0] for item in response['dataList']: if item['id'] == 26838: self.assertEqual(item['name'], self.expected_result['goodsinfo'][0]['name'], msg='商品名称读取错误') self.assertEqual(item['price'], self.expected_result['goodsinfo'][0]['price'], msg='商品价格price读取错误') self.assertEqual( item['description'], self.expected_result['goodsinfo'][0]['description'], msg='商品描述读取错误') self.assertEqual( item['iconUrl'], self.expected_result['goodsinfo'][0]['iconUrl'], msg='商品连接iconUrl读取错误') self.assertEqual( item['standard'], self.expected_result['goodsinfo'][0]['standard'], msg='商品规格读取错误') self.assertEqual(item['skuQuantity'], skuQuantity1, msg='商品库存读取错误') elif item['id'] == 26839: self.assertEqual(item['name'], self.expected_result['goodsinfo'][1]['name'], msg='商品名称读取错误') self.assertEqual(item['price'], self.expected_result['goodsinfo'][1]['price'], msg='商品价格price读取错误') self.assertEqual( item['description'], self.expected_result['goodsinfo'][1]['description'], msg='商品描述读取错误') self.assertEqual( item['iconUrl'], self.expected_result['goodsinfo'][1]['iconUrl'], msg='商品连接iconUrl读取错误') self.assertEqual( item['standard'], self.expected_result['goodsinfo'][1]['standard'], msg='商品规格读取错误') self.assertEqual(item['skuQuantity'], skuQuantity2, msg='商品库存读取错误')
def test_get_in_coupon(self): headers = cookie headers.update(cookie) self.http.set_header(headers) str_list = self.url.split('/') logger.info(str_list) coupon_serial = str_list[3] # 记录初始库存 query = 'SELECT sku_quantity FROM base_info WHERE serial = %s' data = (coupon_serial, ) result = saofudb.select_one_record(query, data) sku_quantity_old = result[0] logger.info('正在发起POST请求...') self.url = self.url.replace('[global_openId]', global_openId) self.params = self.params.encode('utf-8') response = self.http.post(self.url, self.params) response = response[0].decode('utf-8') response = json.loads(response) logger.info('正在解析返回结果:%s' % response) GetInCoupon.card_code = response['cardCode'] # 供其它支付使用 query = 'SELECT title, sub_title, notice, description, use_limit, date_info_type, sku_quantity, detail_txt, service_phone, id ' \ 'FROM base_info WHERE serial = %s' data = (coupon_serial, ) result = saofudb.select_one_record(query, data) self.expected_result['title'] = result[0] self.expected_result['subTitle'] = result[1] self.expected_result['notice'] = result[2] self.expected_result['description'] = result[3] self.expected_result['useLimit'] = result[4] self.expected_result['dateInfoType'] = result[5] self.expected_result['skuQuantity'] = sku_quantity_old - 1 sku_quantity_new = result[6] self.expected_result['detailTxt'] = result[7] self.expected_result['servicePhone'] = result[8] base_info_Id = result[9] query = 'SELECT cash_least_cost, cash_reduce_cost,discount FROM coupon_weixin WHERE base_info_Id = %s' data = (base_info_Id, ) result = saofudb.select_one_record(query, data) self.expected_result['cashLeastCost'] = result[0] self.expected_result['cashReduceCost'] = result[1] GetInCoupon.cash_reduce_cost = result[1] self.expected_result['discount'] = result[2] GetInCoupon.discount = result[2] logger.info(response['cwc']['cw']['baseInfo']['codeType']) # 断言 self.assertEqual(response['getByWeixin'], bool(self.expected_result['getByWeixin']), msg='getByWexin不为false') self.assertEqual(response['cwc']['cw']['baseInfo']['codeType'], self.expected_result['codeType'], msg='codeType不为2') self.assertEqual(response['cwc']['cw']['baseInfo']['title'], self.expected_result['title'], msg='title错误') self.assertEqual(response['cwc']['cw']['baseInfo']['subTitle'], self.expected_result['subTitle'], msg='subTitle错误') self.assertEqual(response['cwc']['cw']['baseInfo']['notice'], self.expected_result['notice'], msg='notice错误') self.assertEqual(response['cwc']['cw']['baseInfo']['description'], self.expected_result['description'], msg='description错误') self.assertEqual(response['cwc']['cw']['baseInfo']['useLimit'], self.expected_result['useLimit'], msg='useLimit错误') self.assertEqual(response['cwc']['cw']['baseInfo']['dateInfoType'], self.expected_result['dateInfoType'], msg='dateInfoType错误') self.assertEqual(response['cwc']['cw']['baseInfo']['cardType'], self.expected_result['cardType'], msg='cardType不为1') self.assertEqual(response['cwc']['cw']['baseInfo']['listing'], self.expected_result['listing'], msg='listing不为1') self.assertEqual(response['cwc']['cw']['baseInfo']['fitAll'], bool(self.expected_result['fitAll']), msg='fitAll不为true') self.assertEqual(response['cwc']['cw']['baseInfo']['listing'], self.expected_result['listing'], msg='listing不为1') self.assertEqual(response['cwc']['cw']['baseInfo']['detailTxt'], self.expected_result['detailTxt'], msg='detail_txt错误') self.assertEqual(response['cwc']['cw']['baseInfo']['servicePhone'], self.expected_result['servicePhone'], msg='servicePhone错误') self.assertEqual(response['cwc']['cw']['cashLeastCost'], self.expected_result['cashLeastCost'], msg='cashReduceCost错误') self.assertEqual(response['cwc']['cw']['cashReduceCost'], self.expected_result['cashReduceCost'], msg='cashReduceCost错误') self.assertEqual(response['cwc']['cw']['discount'], self.expected_result['discount'], msg='discount计算错误') self.assertEqual(response['cwc']['channel'], self.expected_result['channel'], msg='channel不为-1') self.assertEqual(response['cwc']['branchId'], self.expected_result['branchId'], msg='branchId不为-1') self.assertEqual(response['success'], bool(self.expected_result['success']), msg='success不为ture,领取卡券失败') self.assertEqual(sku_quantity_new, self.expected_result['skuQuantity'], msg='库存计算错误')