Beispiel #1
0
    def test_verify_user_auth(self, case):

        # 拼接url地址
        url = conf.get("env", "url") + case.url
        self.row = case.case_id + 1
        ws = WebRequests()
        response = ws.web_request(url=url, interface='verifyUserAuth', data=case.request_data)
        # 成功服务器响应数据{'retCode': 0, 'retInfo': ok},需将ok --> 'ok'
        if 'retCode' in str(response):
            result = {'retCode': response['retCode'], 'retInfo': str(response['retInfo'])}
        # 由于测试失败返回的数据特殊{'faultcode': soap:Server, 'faultstring': 手机号码错误},只能转换为str再来断言
        else:
            result = str(response)

        # 该打印的内容会显示在报告中
        print("请求数据--> {}".format(case.request_data))
        my_log.info("请求数据--> {}".format(case.request_data))

        print("期望结果--> {}".format(case.expected_data))
        my_log.info("期望结果--> {}".format(case.expected_data))

        print("服务器响应数据--> {}".format(response))
        my_log.info("服务器响应数据--> {}".format(response))

        try:
            # if 'retCode' in case.expected_data:
            #     self.assertEqual(eval(case.expected_data), result)
            # else:
            #     self.assertEqual(case.expected_data, str(result))
            self.assertEqual(eval(case.expected_data), response)

        except AssertionError as e:
            result = 'FAIL'
            my_log.exception(e)     # 将异常信息记录到日志
            raise e
        else:
            result = 'PASS'
            my_log.debug("断言结果:{}, 测试通过".format(result))

        finally:
            self.wb.write_data(row=self.row, column=8, msg=str(response))
            self.wb.write_data(row=self.row, column=9, msg=result)
Beispiel #2
0
    def request(self,
                method,
                url,
                params=None,
                data=None,
                headers=None,
                cookies=None,
                json=None):

        method = method.lower()
        if method == "post":
            # 判断是否使用json来传参(适用于接口项目有使用json传参)
            if json:
                my_log.info("正在发送请求,请求地址:{}, 请求参数:{}".format(url, json))
                return self.session.post(url=url,
                                         json=json,
                                         headers=headers,
                                         cookies=cookies)
            else:
                my_log.info("正在发送请求,请求地址:{}, 请求参数:{}".format(url, data))
                return self.session.post(url=url,
                                         data=data,
                                         headers=headers,
                                         cookies=cookies)
        elif method == "get":
            my_log.info("正在发送请求,请求地址:{}, 请求参数:{}".format(url, params))
            return self.session.get(url=url,
                                    params=params,
                                    headers=headers,
                                    cookies=cookies)
Beispiel #3
0
    def setUpClass(cls):

        my_log.info("准备开始执行实名认证接口的测试......")
        cls.request = HTTPRequest2()
        cls.db = ExecuteMysql()
Beispiel #4
0
    def tearDownClass(cls):

        my_log.info("实名认证接口测试执行完毕......")
        cls.request.close()
        cls.db.close()
Beispiel #5
0
    def tearDownClass(cls):

        my_log.info("======注册接口测试执行完毕======")
        cls.request.close()
        cls.db.close()
Beispiel #6
0
    def setUpClass(cls):

        my_log.info("======准备开始执行注册接口的测试======")
        cls.request = HTTPRequest2()
        cls.db = ExecuteMysql()
Beispiel #7
0
        url = conf.get("env", "url") + case.url
        self.row = case.case_id + 1
        webs = WebRequests()
        response = webs.web_request(url=url,
                                    interface='userRegister',
                                    data=case.request_data)

        # 该打印的内容会显示在报告中
        print("请求参数--> {}".format(case.request_data))
        my_log.info("请求参数--> {}".format(case.request_data))

        print("期望结果--> {}".format(case.expected_data))
        my_log.info("期望结果--> {}".format(case.expected_data))

        print("服务器响应数据--> {}".format(response))
        my_log.info("服务器响应数据--> {}".format(response))

        try:
            self.assertEqual(eval(case.expected_data), response)

        except AssertionError as e:
            result = 'FAIL'
            my_log.exception(e)  # 将异常信息记录到日志
            raise e
        else:
            result = 'PASS'
            my_log.info("断言结果:{}, 测试通过".format(result))

        finally:
            self.wb.write_data(row=self.row, column=8, msg=str(response))
            self.wb.write_data(row=self.row, column=9, msg=result)
class SendMCodeTestCase(unittest.TestCase):

    # 拼接完整的excel路径,然后读取excel数据
    wb = ReadExcel(os.path.join(DATA_DIR, file_name), "sendMCode")
    cases = wb.read_column_data(read_column)

    @classmethod
    def setUpClass(cls):

        my_log.info("======准备开始执行发送短信验证码接口的测试======")
        cls.request = HTTPRequest2()
        cls.db = ExecuteMysql()

    @classmethod
    def tearDownClass(cls):
        my_log.info("======发送短信验证码接口测试执行完毕======")
        cls.request.close()
        cls.db.close()

    @data(*cases)  # 拆包,拆成几个参数
    def test_send_m_code(self, case):

        # 替换成随机手机号码
        case.request_data = data_replace(case.request_data)

        # 替换成随机ip
        case.request_data = case.request_data.replace('$ip', rand_ip())

        # 拼接url地址
        url = conf.get("env", "url") + case.url
        self.row = case.case_id + 1

        # 调用封装好的webservice请求方法
        webs = WebRequests()
        response = webs.web_request(url=url,
                                    interface='sendMCode',
                                    data=case.request_data)

        # 用例失败则返回的键值不是str,会报错,需将值转换为str
        if 'faultcode' in response:
            response = {
                'faultcode': str(response.get('faultcode')),
                'faultstring': str(response.get('faultstring'))
            }

        # 该打印的内容会显示在报告中,以及日志
        print("请求参数--> {}".format(case.request_data))
        my_log.info('请求参数--> {}'.format(case.request_data))

        print("期望结果---> {}".format(case.expected_data))
        my_log.info("期望结果---> {}".format(case.expected_data))

        print("服务器响应数据--> {}".format(response))
        my_log.info("服务器响应数据--> {}".format(response))

        try:
            if 'retCode' in case.expected_data:
                self.assertEqual(eval(case.expected_data), response)
            else:
                self.assertEqual(case.expected_data, str(response))

        except AssertionError as e:
            result = 'FAIL'
            self.wb.write_data(row=self.row, column=9, msg=result)
            my_log.exception(e)  # 将异常信息记录到日志
            raise e
        else:
            result = 'PASS'
            my_log.info("断言结果--> {}, 测试通过".format(result))
        finally:
            self.wb.write_data(row=self.row, column=8,
                               msg=str(response))  # 只能写入str类型数据
            self.wb.write_data(row=self.row, column=9, msg=result)