Beispiel #1
0
 def Perform(self):
     """
     增删改查操作,返回单个字段和记录
     :return: {"key": "value"}
     """
     db = self.connect_db()
     cursor = db.cursor()
     environment = operate_excel.get_palce(self.case_num, self.case_name)['db']
     version = db.server_version
     Log().info('成功登录%s环境数据库:%s,版本为:%s,执行SQL:%s' % (environment, self.database, version, self.sql))
     if "SELECT" in self.sql or "select" in self.sql:
         try:
             cursor.execute(self.sql)
             results = cursor.fetchall()
             Log().info('查询结果:%s' % results[0][0])
             return results[0][0]
         except:
             Log().info("Error: unable to fetch data")
             raise
     elif "UPDATE" in self.sql or "update" in self.sql:
         try:
             cursor.execute(self.sql)
             db.commit()
             Log().info("更新数据成功")
         except:
             db.rollback()
             Log().info("Error:Has been rolled back")
             raise
     db.close()
Beispiel #2
0
 def more_perform(self):
     """
     增删改查操作,返回多个字段和记录
     :return: [{"key1": "value1", "key2", "value2"},{"key1": "value1", "key2", "value2"} ....]
     """
     db = self.connect_db()
     cursor = db.cursor()
     environment = operate_excel.get_palce(self.case_num, self.case_name)['db']
     version = db.server_version
     Log().info('成功登录%s环境数据库:%s,版本为:%s,执行SQL:%s' % (environment, self.database, version, self.sql))
     try:
         cursor.execute(self.sql)
         results = cursor.fetchall()
         Log().info('sql查询结果:{0}'.format(results))
         sql1 = self.sql.replace(' ', '')
         find_keys = re.findall("^select(.+?)from", sql1)
         keys = find_keys[0].split(",")
         list_result = []
         for i in results:
             for num in range(len(i)):
                 dict_result = {}
                 dict_result[keys[num]] = i[num]
             list_result.append(dict_result)
         if len(results) == 1:
             return dict_result
         elif len(results) > 1:
             return list_result
     except:
         Log().info("Error: unable to fetch data")
         raise
     db.close()
Beispiel #3
0
 def testCase3(self, id=17):
     """消息通知成功"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'],
                       key=data_test['key'],
                       param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' %
                (data_test['url'], data_test['key'], data_test['param'],
                 data_test['way']))
     apijson2 = json.loads(apijson)
     actual_one = apijson2["isSuccess"]
     msg = apijson2["count"]
     try:
         self.assertEqual(int(expect_one['isSuccess']),
                          actual_one,
                          msg='预期和返回不一致')
         Log().info('对【isSuccess】断言,断言结果--预期值%s == 实际值%s,收到%s条消息' %
                    (expect_one['isSuccess'], actual_one, msg))
     except:
         Log().warning('对【isSuccess】断言,断言结果--预期值%s != 实际值%s' %
                       (expect_one['isSuccess'], actual_one))
         raise
Beispiel #4
0
def Send_dingding(cases, fail_case, fail_result):
    url = "https://oapi.dingtalk.com/robot/send?access_token=7b7bfd8536388cd11d8fe6dbafa43dacdfd889451f83f9206bac7b5ceada6dc4"  # url为机器人的webhook
    header = {
        "Content-Type": "application/json",
        "Charset": "UTF-8"
    }
    try:
        content = "{0}\n" \
                  "{1}\n" \
                  "功能模块:达人圈、订单交易、地址管理、购物车、个人中心操作\n" \
                  "执行过程:\n" \
                  "1.达人圈-发布达人圈,请求接口publishNote,对返回的isSuccess和msg字段断言\n" \
                  "2.达人圈-获取发布内容,请求接口getUserPublish,对返回的content和noteid字段断言\n" \
                  "3.达人圈-点赞内容,请求接口like,对返回的isSuccess和like_num字段断言\n" \
                  "4.达人圈-收藏内容,请求接口collection,对返回的isSuccess和collect_num字段断言\n" \
                  "失败用例名称:{2}\n" \
                  "请登录http://47.99.83.80:8881/jenkins/job/interface_online/HTML_20Report/ 查看详细报告,账密admin/showjoy@123".format(cases, fail_case, fail_result)
        data = {
            "msgtype": "text",
            "text": {
                "content": content
            }
        }
        sendData = json.dumps(data)
        sendData = sendData.encode("utf-8")
        request = requests.post(url=url, data=sendData, headers=header)
        opener = urllib.request.urlopen(request)
        Log().info('钉钉通知成功{0}'.format(opener.read()))
    except:
        Log().info('钉钉通知失败')
        raise
 def Perform(self):
     # 使用cursor()方法获取操作游标
     self.db = self.connect_db()
     self.cursor = self.db.cursor()
     sql = self.get_sql()
     version = self.db.server_version
     Log().info('成功登录数据库:%s,版本为:%s,执行SQL:%s' % (self.getdb, version, sql))
     if "SELECT" in sql or "select" in sql:
         try:
             self.cursor.execute(sql)
             results = self.cursor.fetchall()
             Log().info('查询结果:%s' % results[0][0])
             return results[0][0]
         except:
             Log().info("Error: unable to fetch data")
             raise
     elif "UPDATE" in sql or "update" in sql:
         try:
             self.cursor.execute(sql)
             self.db.commit()
             Log().info("更新成功")
         except:
             self.db.rollback()
             Log().info("Error:Has been rolled back")
             raise
     self.db.close()
Beispiel #6
0
 def get_param(self):
     if self.place != 'database':
         return self.param
     else:
         #获取数据库名
         self.database = Getyaml(yamlparam="interface_db",
                                 interface=self.url).port_db()
         Log().info('当前接口涉及数据库:%s' % self.database)
         #执行数据库操作
         post_data = Operate_db(self.database, self.url).Perform()
         Log().info('数据格式为:%s' % post_data)
         return post_data
Beispiel #7
0
 def click_msg(self):
     """获取验证码"""
     url2 = '/api/shop/login/getLoginCode?tel=18069425303'
     try:
         r = requests.get(url=self.url1 + url2, cookies=self.cookies, headers=self.headers)
         r.encoding = 'UTF-8'
         response_text = r.text
         response_text1 = json.loads(response_text)['msg']
         Log().info('get请求发送验证码,验证码发送{0}'.format(response_text1))
         sleep(5)
     except Exception as e:
         Log().error('get请求出错,出错原因:%s' % e)
         return {'code': 1, 'result': 'get请求出错,出错原因:%s' % e}
Beispiel #8
0
 def Login(self):
     """APP接口--登录用户"""
     # self.click_msg()
     # msg = Operate_redis().connect()
     url2 = '/api/shop/shopLogin?tel=18069425303&code=123456'
     try:
         r = requests.get(url=self.url1+url2, cookies=self.cookies, headers=self.headers)
         r.encoding = 'UTF-8'
         response_text = r.text
         response_text1 = json.loads(response_text)['data']['token']
         Log().info('18069425303用户开始登录,返回登录信息{0}'.format(response_text1))
         return response_text1
     except Exception as e:
         Log().error('get请求出错,出错原因:%s' % e)
         return {'code': 1, 'result': 'get请求出错,出错原因:%s' % e}
Beispiel #9
0
    def select_user(self):
        """APP接口--多个账号,选择一个账号登录"""
        url3 = '/api/shop/login/selectUser'
        data = {'tel': '18069425303', 'userId': '10474262', 'token': self.Login(), 'isShop': 'false'}
        try:
            session = requests.Session()
            r = session.post(url=self.url1+url3, cookies=self.cookies, headers=self.headers, data=data)
            r.encoding = 'UTF-8'
            cookie = requests.utils.dict_from_cookiejar(session.cookies)
            umbrella_token = cookie['umbrella_token']
            Log().info('18069425303登录成功,返回token<{0}>'.format(umbrella_token))
            return umbrella_token
        except Exception as e:
            Log().error('get请求出错,出错原因:%s' % e)
            return {'code': 1, 'result': 'get请求出错,出错原因:%s' % e}
# Lg_in().select_user()
Beispiel #10
0
def data(case_name='liguo'):
    """
    将列表转换成字典,以便于取值,也可用于ddt数驱
    :param a: 用例序号1,2,3...
    :return: 字典
    """
    path = file_path + "/" + "case_{0}.xlsx".format(case_name)
    list_id, list_module, list_name, list_key, list_param, list_place, list_url, list_way, list_expect1, \
    list_expect2, list_expect3, list_expect4=readexcel(path)
    make_data1 = []
    try:
        for i in range(len(list_id)):
            make_data1.append({
                'id': list_id[i],
                'module': list_module[i],
                'url': list_url[i],
                'name': list_name[i],
                'key': list_key[i],
                'param': list_param[i],
                'place': list_place[i],
                'way': list_way[i],
                'expect1': list_expect1[i],
                'expect2': list_expect2[i],
                'expect3': list_expect3[i],
                'expect4': list_expect4[i]
            })
            i += 1
        return make_data1
    except:
        Log().error('打开测试用例失败,原因是:%s' % Exception)
def readexcel(filepath):
    """
    读取xlsx文件,将每列的数据保存到list里
    """
    try:
        file = xlrd.open_workbook(filepath)
        first_line = file.sheets()[0]
        lines = first_line.nrows
        list_id = []
        list_name = []
        list_key = []
        list_param = []
        list_place = []
        list_url = []
        list_way = []
        list_expect1 = []
        list_expect2 = []
        for i in range(1, lines):
            list_id.append(first_line.cell(i, 0).value)
            list_name.append(first_line.cell(i, 1).value)
            list_key.append(first_line.cell(i, 2).value)
            list_param.append(first_line.cell(i, 3).value)
            list_place.append(first_line.cell(i, 4).value)
            list_url.append(first_line.cell(i, 5).value)
            list_way.append((first_line.cell(i, 6).value))
            list_expect1.append((first_line.cell(i, 7).value))
            list_expect2.append((first_line.cell(i, 8).value))
        return list_id, list_name, list_key, list_param, list_place, list_url, list_way, list_expect1, list_expect2
    except:
        Log().error('打开测试用例失败,原因是:%s' % Exception)
Beispiel #12
0
 def testCase7(self, id=10):
     """发送订单退款通知"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'], key=data_test['key'], param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'],
                data_test['param'], data_test['way']))
     apijson2 = json.loads(apijson)
     actual_one = apijson2["data"][0]["content"]
     try:
         self.assertEqual(expect_one['content'], actual_one, msg='预期和返回不一致')
         Log().info('对支付成功消息【content】断言,断言结果--预期值%s == 实际值%s' % (expect_one['content'], actual_one))
     except:
         Log().warning('对支付成功消息【content】断言,断言结果--预期值%s != 实际值%s' % (expect_one['content'], actual_one))
         raise
Beispiel #13
0
 def testCase5(self, id=4):
     """订单详情收益和上级佣金"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     expect_two = operate_excel.change(asserexpect=data_test['expect2'])
     expect_three = operate_excel.change(asserexpect=data_test['expect3'])
     expect_four = operate_excel.change(asserexpect=data_test['expect4'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'].format(actual), key=data_test['key'], param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'].format(actual), data_test['key'],
                                                        data_test['param'], data_test['way']))
     apijson1 = json.loads(apijson)
     actual_one = apijson1["data"]["tradePageInfoVO"]["orderDirectCommission"]
     sql = operate_excel.get_palce(case_num=id, case_name=MyTest.name)['sql']
     actual_com = operate_db.Operate_db(case_num=id, sql=sql, case_name=MyTest.name).more_perform()
     actual_two = str(decimal.Decimal(actual_com[0]['commission']))
     actual_three = str(decimal.Decimal(actual_com[1]['commission']))
     actual_four = str(decimal.Decimal(actual_com[2]['commission']))
     try:
         self.assertEqual(float(expect_one['orderDirectCommission']), actual_one, msg='预期和返回不一致')
         Log().info('对详情页【收益】断言,断言结果--预期值%s == 实际值%s' % (expect_one['orderDirectCommission'], actual_one))
     except:
         Log().warning('对详情页【收益】断言,断言结果--预期值%s != 实际值%s' % (expect_one['orderDirectCommission'], actual_one))
         raise
     finally:
         try:
             self.assertEqual(expect_two['invite'], actual_two, msg='预期和返回不一致')
             Log().info('对邀请人【佣金】断言,断言结果--支付成功预期值%s == 实际值%s' % (expect_two['invite'], actual_two))
         except:
             Log().warning('对邀请人【佣金】断言,断言结果--支付成功预期值%s != 实际值%s' % (expect_two['invite'], actual_two))
             raise
         finally:
             try:
                 self.assertEqual(expect_three['guwen'], actual_three, msg='预期和返回不一致')
                 Log().info('对客户代表/营销顾问【佣金】断言,断言结果--支付成功预期值%s == 实际值%s' % (expect_three['guwen'], actual_three))
             except:
                 Log().warning('对客户代表/营销顾问【佣金】断言,断言结果--支付成功预期值%s != 实际值%s' % (expect_three['guwen'], actual_three))
                 raise
             finally:
                 try:
                     self.assertEqual(expect_four['jinli'], actual_four, msg='预期和返回不一致')
                     Log().info('对市场经理【佣金】断言,断言结果--支付成功预期值%s == 实际值%s' % (expect_four['jinli'], actual_four))
                 except:
                     Log().warning('对市场经理【佣金】断言,断言结果--支付成功预期值%s != 实际值%s' % (expect_four['jinli'], actual_four))
                     raise
Beispiel #14
0
    def connect(self):
        con_info = Getyaml().get_redis(env=self.env)
        try:
            r = redis.Redis(host=con_info[0], port=con_info[1], password=con_info[2], db=0)
            data1 = str(r.hget(name='showjoy_login_captcha_cache:{0}'.format(self.name), key='15868147451'), encoding = "utf8")
            data2 = data1.replace("false", "0")
            data3 = json.loads(data2.replace("true", "0"))
            data = data3['code']
            Log().info('查询结果:{0}'.format(data))
            return data
        except:
            Log().info('查询redis失败')
            raise

# Operate_redis().connect()
# sql2 = "select sum(collect_num),sum(like_num),sum(share_num) from interaction_info where note_id in (select note_id from note_info_shadow where user_id = '9140391') or note_id in (select id from note_info where user_id = '9140391')"
# Operate_db(24,sql2).more_perform()
Beispiel #15
0
 def testCase4(self, id=3):
     """发送支付成功和收益到账通知"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     expect_two = operate_excel.change(asserexpect=data_test['expect2'])
     expect_three = operate_excel.change(asserexpect=data_test['expect3'])
     expect_four = operate_excel.change(asserexpect=data_test['expect4'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'], key=data_test['key'], param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'],
                data_test['param'], data_test['way']))
     apijson2 = json.loads(apijson)
     actual_str1 = apijson2["data"][1]["content"]
     actual_one = json.loads(actual_str1)["title"]
     actual_two = json.loads(actual_str1)["messageSubLines"][0]["content"]
     actual_str2 = apijson2["data"][0]["content"]
     actual_three = json.loads(actual_str2)["title"]
     actual_four = json.loads(actual_str2)["messageSubLines"][0]["content"]
     try:
         self.assertEqual(expect_one['title'], actual_one, msg='预期和返回不一致')
         Log().info('对支付成功消息【title】断言,断言结果--预期值%s == 实际值%s' % (expect_one['title'], actual_one))
     except:
         Log().warning('对支付成功消息【title】断言,断言结果--预期值%s != 实际值%s' % (expect_one['title'], actual_one))
         raise
     finally:
         try:
             self.assertEqual(expect_two['content'], actual_two, msg='预期和返回不一致')
             Log().info('对支付成功消息【金额】断言,断言结果--支付成功预期值%s == 实际值%s' % (expect_two['content'], actual_two))
         except:
             Log().warning('对支付成功消息【金额】断言,断言结果--支付成功预期值%s != 实际值%s' % (expect_two['content'], actual_two))
             raise
         finally:
             try:
                 self.assertEqual(expect_three['title'], actual_three, msg='预期和返回不一致')
                 Log().info('对收益到账消息【title】断言,断言结果--支付成功预期值%s == 实际值%s' % (expect_three['title'], actual_three))
             except:
                 Log().warning('对收益到账消息【title】断言,断言结果--支付成功预期值%s != 实际值%s' % (expect_three['title'], actual_three))
                 raise
             finally:
                 try:
                     self.assertEqual(expect_four['content'], actual_four, msg='预期和返回不一致')
                     Log().info('对收益到账消息【金额】断言,断言结果--支付成功预期值%s == 实际值%s' % (expect_four['content'], actual_four))
                 except:
                     Log().warning('对收益到账消息【金额】断言,断言结果--支付成功预期值%s != 实际值%s' % (expect_four['content'], actual_four))
                     raise
 def testCase4(self, id=22):
     """删除购物车商品"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'], key=data_test['key'], param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'],
                                                        data_test['param'], data_test['way']))
     apijson1 = apijson.replace('false', '"false"')
     apijson2 = apijson1.replace('true', '"true"')
     apijson3 = json.loads(apijson2)
     actual_one = apijson3["data"]["itemList"]
     try:
         self.assertEqual(int(expect_one['itemList']), len(actual_one), msg='预期和返回不一致')
         Log().info('对【购物车商品】断言,断言结果--预期值%s == 实际值%s' % (expect_one['itemList'], len(actual_one)))
     except:
         Log().warning('对【购物车商品】断言,断言结果--预期值%s != 实际值%s' % (expect_one['itemList'], len(actual_one)))
         raise
 def testCase1(self, id=19):
     """商品加入购物车"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'], key=data_test['key'], param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'],
                data_test['param'], data_test['way']))
     apijson2 = json.loads(apijson)
     actual_one = apijson2["data"]
     try:
         self.assertEqual(int(expect_one['data']), actual_one, msg='预期和返回不一致')
         Log().info('成功加入购物车,对【data】断言,断言结果--预期值%s == 实际值%s' % (expect_one['data'], actual_one))
     except:
         Log().warning('成功加入购物车,对【data】断言,断言结果--预期值%s != 实际值%s' % (expect_one['data'], actual_one))
         raise
     else:
         Log().info('第1条断言成功')
 def testCase3(self, id=37):
     """设置默认地址"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'].format(address_id1), key=data_test['key'], param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'].format(address_id1), data_test['key'],
                                                        data_test['param'], data_test['way']))
     apijson1 = json.loads(apijson)
     global address_id
     address_id = apijson1["data"]["addresses"][0]["id"]
     actual_one = apijson1["data"]["addresses"][0]["isDefault"]
     try:
         self.assertEqual(expect_one['isDefault'], str(actual_one), msg='预期和返回不一致')
         Log().info('地址【%s】是否为默认地址,断言结果--预期值%s == 实际值%s' % (address_id, expect_one['isDefault'], actual_one))
     except:
         Log().warning('地址【%s】是否为默认地址,断言结果--预期值%s != 实际值%s' % (address_id, expect_one['isDefault'], actual_one))
         raise
Beispiel #19
0
 def connect_db(self):
     """
     连接数据库
     :return:连接信息
     """
     data = Getyaml().get_data(self.case_num, self.case_name)
     self.database = operate_excel.get_palce(self.case_num, self.case_name)['database']
     db1 = pymysql.connect(data[0], data[1], data[2],self.database ,charset='utf8')
     Log().info("连接数据库成功")
     return db1
Beispiel #20
0
def change(asserexpect):
    """
    变更期望值格式
    """
    if len(asserexpect.split('=')) > 1:
        data = asserexpect.split('&')  #['code=4001']
        result = dict([(item.split('=')) for item in data])  #{'code': '4001'}
        return result
    else:
        Log().info('填写测试预期值')
        raise {"code": 1, 'result': '填写测试预期值'}
 def testCase4(self, id=38):
     """编辑地址"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'], key=data_test['key'], param=data_test['param'].replace("{0}", str(address_id1)),
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'],
                data_test['param'].replace("{0}", str(address_id1)), data_test['way']))
     apijson2 = json.loads(apijson)
     sql = operate_excel.get_palce(case_num=id, case_name=MyTest.name)['sql']
     actual_one = operate_db.Operate_db(case_num=id, sql=sql, case_name=MyTest.name).Perform()
     global address_id2
     address_id2 = apijson2["data"]
     try:
         self.assertEqual(expect_one['fullName'], actual_one, msg='预期和返回不一致')
         Log().info('重新生成地址id【%s】,对【fullName】断言,断言结果--预期值%s == 实际值%s' % (address_id2, expect_one['fullName'], actual_one))
     except:
         Log().warning('重新生成地址id【%s】,对【fullName】断言,断言结果--预期值%s != 实际值%s' % (address_id2, expect_one['fullName'], actual_one))
         raise
Beispiel #22
0
 def testCase2(self, id=16):
     """店铺信息展示"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     expect_two = operate_excel.change(asserexpect=data_test['expect2'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'],
                       key=data_test['key'],
                       param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' %
                (data_test['url'], data_test['key'], data_test['param'],
                 data_test['way']))
     apijson2 = json.loads(apijson)
     actual_one = apijson2["data"]["nick"]
     actual_two = apijson2["data"]["tel"]
     try:
         self.assertEqual(expect_one['nick'], actual_one, msg='预期和返回不一致')
         Log().info('对【店铺名称】断言,断言结果--预期值%s == 实际值%s' %
                    (expect_one['nick'], actual_one))
     except:
         Log().warning('对【店铺名称】断言,断言结果--预期值%s != 实际值%s' %
                       (expect_one['nick'], actual_one))
         raise
     finally:
         try:
             self.assertEqual(expect_two['tel'], actual_two, msg='预期和返回不一致')
             Log().info('对【店铺手机号】断言,断言结果--预期值%s == 实际值%s' %
                        (expect_two['tel'], actual_two))
         except:
             Log().warning('对【店铺手机号】断言,断言结果--预期值%s != 实际值%s' %
                           (expect_two['tel'], actual_two))
             raise
 def testCase5(self, id=39):
     """删除地址"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     expect_two = operate_excel.change(asserexpect=data_test['expect2'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'], key=data_test['key'], param=data_test['param'].replace("{0}", str(address_id2)),
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'],
                                                        data_test['param'], data_test['way']))
     apijson1 = json.loads(apijson)
     actual_one = apijson1["isSuccess"]
     sleep(1)
     sql = operate_excel.get_palce(case_num=id)['sql'].format(address_id2)
     actual_two = operate_db.Operate_db(case_num=id, sql=sql, case_name=MyTest.name).Perform()
     try:
         self.assertEqual(int(expect_one['isSuccess']), actual_one, msg='预期和返回不一致')
         Log().info('对【isSuccess】断言,断言结果--预期值%s == 实际值%s' % (expect_one['isSuccess'], actual_one))
     except:
         Log().warning('对【isSuccess】断言,断言结果--预期值%s != 实际值%s' % (expect_one['isSuccess'], actual_one))
         raise
     finally:
         try:
             self.assertEqual(int(expect_two['COUNT(*)']), actual_two, msg='预期和返回不一致')
             Log().info('对【删除结果数】断言,断言结果--预期值%s == 实际值%s' % (expect_two['COUNT(*)'], actual_two))
         except:
             Log().warning('对【删除结果数】断言,断言结果--预期值%s != 实际值%s' % (expect_two['COUNT(*)'], actual_two))
             raise
 def testCase1(self, id=35):
     """新增地址"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'], key=data_test['key'], param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'],
                                                        data_test['param'], data_test['way']))
     apijson2 = json.loads(apijson)
     actual_one = apijson2["isSuccess"]
     global address_id1
     address_id1 = apijson2["data"]
     actual_two = address_id1
     sql = operate_excel.get_palce(case_num=id, case_name=MyTest.name)['sql']
     expect_two = operate_db.Operate_db(case_num=id, sql=sql, case_name=MyTest.name).Perform()
     try:
         self.assertEqual(int(expect_one['isSuccess']), actual_one, msg='预期和返回不一致')
         Log().info('对【isSuccess】断言,断言结果--预期值%s == 实际值%s' % (expect_one['isSuccess'], actual_one))
     except:
         Log().warning('对【isSuccess】断言,断言结果--预期值%s != 实际值%s' % (expect_one['isSuccess'], actual_one))
         raise
     finally:
         try:
             self.assertEqual(expect_two, actual_two, msg='预期和返回不一致')
             Log().info('对【地址id】断言,断言结果--预期值%s == 实际值%s' % (expect_two, actual_two))
         except:
             Log().warning('对【地址id】断言,断言结果--预期值%s != 实际值%s' % (expect_two, actual_two))
             raise
Beispiel #25
0
    def testCase1(self, id=0):
        """确认订单信息"""
        data_test = operate_excel.data(case_name=MyTest.name)[id]    #从Excel获取第1条测试用例
        expect_one = operate_excel.change(asserexpect=data_test['expect1'])    #获取期望值1,从Excel获取
        expect_two = operate_excel.change(asserexpect=data_test['expect2'])    #获取期望值2,从Excel获取
        Log().info('获取用例数据:%s' % data_test)
        # 接口请求,得到响应体
        apijson = TestApi(url2=data_test['url'], key=data_test['key'], param=data_test['param'],
                          way=data_test['way']).selectway()
        Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'],
                   data_test['param'], data_test['way']))
        #接口返回的false和true无法解析,先替换为0
        apijson1 = apijson.replace('false', '"false"')
        apijson2 = apijson1.replace('true', '"true"')
        apijson3 = json.loads(apijson2)                           #json转化成字典
        actual_one = apijson3['data']['totalPrice']               #获取实际值1,从响应体获取
        actual_two = apijson3['data']['items'][id]['itemZhName']   #获取实际值2,从响应体获取
        # 期望值1和实际值1进行对比校验
        try:
            self.assertEqual(float(expect_one['totalPrice']), actual_one, msg='预期和返回不一致')

            Log().info('对【商品价格】断言,断言结果--预期值%s == 实际值%s' % (expect_one['totalPrice'], actual_one))
        except:
            Log().warning('对【商品价格】断言,断言结果--预期值%s != 实际值%s' % (expect_one['totalPrice'], actual_one))
            raise
        finally:
        #期望值2和实际值2进行对比校验
            try:
                self.assertEqual(expect_two['itemZhName'], actual_two, msg='预期和返回不一致')
                Log().info('对【商品名称】断言,断言结果--预期值%s == 实际值%s' % (expect_two['itemZhName'], actual_two))
            except:
                Log().warning('对【商品名称】断言,断言结果--预期值%s != 实际值%s' % (expect_two, actual_two))
                raise
Beispiel #26
0
 def testCase6(self, id=9):
     """订单取消成功"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     expect_two = operate_excel.change(asserexpect=data_test['expect2'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'].format(actual), key=data_test['key'], param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'],
                data_test['param'], data_test['way']))
     apijson2 = json.loads(apijson)
     actual_one = apijson2["isSuccess"]
     sql = operate_excel.get_palce(case_num=id, case_name=MyTest.name)['sql'].format(actual)
     sleep(1)
     actual_two = operate_db.Operate_db(case_num=id, sql=sql, case_name=MyTest.name).Perform()
     try:
         self.assertEqual(int(expect_one['isSuccess']), actual_one, msg='预期和返回不一致')
         Log().info('对【订购结果】断言,断言结果--预期值%s == 实际值%s' % (expect_one['isSuccess'], actual_one))
     except:
         Log().warning('对【订购结果】断言,断言结果--预期值%s != 实际值%s' % (expect_one['isSuccess'], actual_one))
         raise
     finally:
         try:
             self.assertEqual(int(expect_two['tradestatus']), actual_two, msg='预期和返回不一致')
             Log().info('对【订单状态】断言,断言结果--支付成功预期值%s == 实际值%s' % (expect_two['tradestatus'], actual_two))
         except:
             Log().warning('对【订单状态】断言,断言结果--支付成功预期值%s != 实际值%s' % (expect_two['tradestatus'], actual_two))
             raise
Beispiel #27
0
 def testCase10(self, id=16):
     """优惠劵抵扣订单金额确认"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'].format(actual_couponid),
                       key=data_test['key'],
                       param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' %
                (data_test['url'], data_test['key'], data_test['param'],
                 data_test['way']))
     apijson1 = json.loads(apijson)
     actual_one = apijson1['data']['itemsTotalPrice']
     expect_totalPrice = float(
         expect_one['itemsTotalPrice']) - actual_couponworth
     actual_totalPrice = actual_one - actual_couponworth
     if expect_totalPrice == actual_totalPrice:
         Log().info('抵扣优惠卷金额正确:预期值%s == 实际值%s' %
                    (expect_totalPrice, actual_totalPrice))
     else:
         Log().warning('抵扣优惠卷金额不正确:预期值%s != 实际值%s' %
                       (expect_totalPrice, actual_totalPrice))
     try:
         self.assertEqual(int(expect_one['itemsTotalPrice']),
                          actual_one,
                          msg='预期和返回不一致')
         Log().info('对【订单金额】断言,断言结果--预期值%s == 实际值%s' %
                    (int(expect_one['itemsTotalPrice']), actual_one))
     except:
         Log().warning('对【订单金额】断言,断言结果--预期值%s == 实际值%s' %
                       (int(expect_one['itemsTotalPrice']), actual_one))
         raise
Beispiel #28
0
 def testCase2(self, id=1):
     """提交订单成功未支付"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_two = operate_excel.change(asserexpect=data_test['expect2'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'], key=data_test['key'], param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'],
                data_test['param'], data_test['way']))
     apijson1 =json.loads(apijson)
     global actual
     actual = apijson1["data"]["orderNumber"]
     sql = operate_excel.get_palce(case_num=id, case_name=MyTest.name)['sql'].format(actual)
     actual_two = operate_db.Operate_db(case_num=id, sql=sql, case_name=MyTest.name).Perform()
     try:
         self.assertIsNotNone(actual, msg='实际值不存在')
         Log().info('对【订单号】断言,生成订单号%s' % (actual))
     except:
         Log().warning('对【订单号】断言,订单号生成失败')
         raise
     finally:
         try:
             self.assertEqual(int(expect_two['tradestatus']), actual_two, msg='预期和返回不一致')
             Log().info('对【订单状态】断言,断言结果--预期值%s == 实际值%s' % (expect_two['tradestatus'], actual_two))
         except:
             Log().warning('对【订单状态】断言,断言结果--预期值%s != 实际值%s' % (expect_two['tradestatus'], actual_two))
             raise
 def testCase2(self, id=20):
     """查看购物车信息"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_one = operate_excel.change(asserexpect=data_test['expect1'])
     expect_two = operate_excel.change(asserexpect=data_test['expect2'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'], key=data_test['key'], param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'],
                data_test['param'], data_test['way']))
     apijson1 = apijson.replace('false', '"false"')
     apijson2 = apijson1.replace('true', '"true"')
     apijson3 = json.loads(apijson2)
     actual_one = apijson3["data"]["itemList"][0]["name"]
     actual_two = apijson3["data"]["itemList"][0]["price"]
     try:
         self.assertEqual(expect_one['name'], actual_one, msg='预期和返回不一致')
         Log().info('对【商品名称】断言,断言结果--预期值%s == 实际值%s' % (expect_one['name'], actual_one))
     except:
         Log().warning('对【商品名称】断言,断言结果--预期值%s != 实际值%s' % (expect_one['name'], actual_one))
         raise
     finally:
         try:
             self.assertEqual(float(expect_two['price']), actual_two, msg='预期和返回不一致')
             Log().info('对【商品价格】断言,断言结果--预期值%s == 实际值%s' % (expect_two['price'], actual_two))
         except:
             Log().warning('对【商品价格】断言,断言结果--预期值%s != 实际值%s' % (expect_two['price'], actual_two))
             raise
 def testCase2(self, id=36):
     """查看地址"""
     data_test = operate_excel.data(case_name=MyTest.name)[id]
     expect_two = operate_excel.change(asserexpect=data_test['expect2'])
     Log().info('获取用例数据:%s' % data_test)
     apijson = TestApi(url2=data_test['url'], key=data_test['key'], param=data_test['param'],
                       way=data_test['way']).selectway()
     Log().info('请求传入数据:url:%s,key:%s,参数:%s,请求方式:%s' % (data_test['url'], data_test['key'],
                data_test['param'], data_test['way']))
     apijson1 = json.loads(apijson)
     actual_one = apijson1["data"]["addresses"][-1]["id"]
     actual_two = apijson1["data"]["addresses"][-1]["isDefault"]
     try:
         self.assertEqual(int(address_id1), actual_one, msg='预期和返回不一致')
         Log().info('对【地址id】断言,断言结果--预期值%s == 实际值%s' % (address_id1, actual_one))
     except:
         Log().warning('对【地址id】断言,断言结果--预期值%s != 实际值%s' % (address_id1, actual_one))
         raise
     finally:
         try:
             self.assertEqual(expect_two['isDefault'], str(actual_two), msg='预期和返回不一致')
             Log().info('对【是否为默认地址】断言,断言结果--预期值%s == 实际值%s' % (expect_two['isDefault'], actual_two))
         except:
             Log().warning('对【是否为默认地址】断言,断言结果--预期值%s != 实际值%s' % (expect_two['isDefault'], actual_two))
             raise