예제 #1
0
 def get_user_customer_month(self, url, data):
     data = base_request.send_request(
         "post",
         url,
         data=json.dumps(data),
         header=self.handle_info["Handler"]).json()
     logger.info(f'用户月用气量:{data}')
     return data
예제 #2
0
 def get_report_data(self, url, data):
     data = base_request.send_request(
         "post",
         url,
         data=json.dumps(data),
         header=self.handle_info["Handler"]).json()
     logger.info(f'读数上报:{data}')
     return data
예제 #3
0
 def get_table_state(self, url, data):
     data = base_request.send_request(
         "post",
         url,
         data=json.dumps(data),
         header=self.handle_info["Handler"]).json()
     logger.info(f'表具状态:{data}')
     return data
 def test_electricity_status(self, table_id, start_time, meter_reading,
                             meterCode):
     logger.info("$电量状态验证--{}$".format(table_id))
     table_info = request_data.get_user_info(
         config_data.get_user_info_ags(meterCode)).get('data')
     if float(table_info["electricQuantity"]) < 5:
         pytest.fail("表具{}:电量接近耗尽,当前电量 {}%".format(
             table_id, table_info["electricQuantity"]))
예제 #5
0
 def get_history_data(self, url, data):
     data = base_request.send_request(
         "post",
         url,
         data=json.dumps(data),
         header=self.handle_info["Handler"]).json()
     logger.info(f'历史记录:{data}')
     return data.get("data")
    def test_valve_status(self, table_id, start_time, meter_reading,
                          meterCode):
        logger.info("$阀门状态验证--{}$".format(table_id))
        table_info = request_data.get_user_info(
            config_data.get_user_info_ags(meterCode)).get('data')

        if table_info["valveStatus"] == '1':
            pytest.fail("表具{}:阀门关闭".format(table_id))
예제 #7
0
 def get_success_rate(self, url, data):
     data = base_request.send_request(
         "post",
         url,
         data=json.dumps(data),
         header=self.handle_info["Handler"]).json()
     logger.info(f'抄表成功率:{data}')
     return data
예제 #8
0
 def get_gas_consumption(self, url, data):
     data = base_request.send_request(
         "post",
         url,
         data=json.dumps(data),
         header=self.handle_info["Handler"]).json()
     logger.info(f'用气量:{data}')
     return data
예제 #9
0
    def __load_excel(self, file_path):
        '''
        加载sheet
        '''

        if not os.path.exists(file_path):
            logger.info("文件路径不存在:{0}".format(file_path))
            raise FileNotFoundError("文件不存在:{}".format(file_path))
        return openpyxl.load_workbook(file_path)
예제 #10
0
    def test_success_rate(self,table_id,start_time,meter_reading,meterCode):

        logger.info("$上报成功率--{}$".format(table_id))
        url,data = config_data.get_success_rate_info(meterCode)
        results = request_data.get_success_rate(url,data)
        if results["msg"] == "data节点数据为空":
            pytest.fail("表具{}:在{} 时间段内没有上报数据".format(table_id,start_time))
        success_rate = (24 - len(self.no_time_report[table_id]))/ 24
        assert success_rate == results["data"][0]["value"] ,table_id
예제 #11
0
 def login(self, url, data):
     self.handle_info = handle_json.read_json(handler_path)
     j_data = base_request.send_request("post", url, data).json()
     logger.info(f"登录请求:{j_data}")
     self.handle_info['Handler']['companyId'] = j_data.get(
         'data')["companyId"]
     self.handle_info['Handler']['userId'] = j_data.get('data')["userId"]
     logger.info(f"最新的handle:{ self.handle_info}")
     handle_json.write_json(self.handle_info, handler_path)
예제 #12
0
 def test_meter_code(self, table_id, start_time, meter_reading):
     logger.info("$ID获取--{}$".format(table_id))
     self.info_items = []
     url, data = config_data.get_table_info(table_id)
     results = request_data.get_table_id(url, data)
     self.info_items.append(table_id)
     self.info_items.append(start_time)
     self.info_items.append(meter_reading)
     self.info_items.append(results["meterId"])
     self.data.append(self.info_items)
예제 #13
0
    def test_money_status(self, table_id, start_time, meter_reading, meterCode):
        logger.info("$金额校验--{}$".format(table_id))
        table_info = request_data.get_user_info(config_data.get_user_info_ags(meterCode)).get('data')
        if not table_info['customerCode']:
            pytest.skip("没有绑定用户跳过此表具")

        config_info = request_data.get_config_info(config_data.get_config_info_data(meterCode)).get('data')
        if config_info['billingMode']=='1':
            if table_info['balance']<10:
                pytest.fail("表具:{} 目前余额:{}".format(table_id,table_info['balance']))
    def test_reading_report(self, table_id, start_time, meter_reading,
                            meterCode):
        logger.info("$读数上报--{}$".format(table_id))

        start_time, end_time = handle_time.update_data_time(start_time, 1)
        url, data = config_data.get_report_info(meterCode, start_time,
                                                end_time)
        results = request_data.get_report_data(url, data)
        if results["msg"] == "data节点数据为空":
            pytest.fail("表具:{},在{}:00:00 时间段左右没有上报数据".format(
                table_id, start_time))
예제 #15
0
    def get_user_info(self, config):
        os.environ["host"] = handle_ini.get_content(config, "host")
        os.environ["companyAccount"] = handle_ini.get_content(
            config, "companyAccount")
        os.environ["account"] = handle_ini.get_content(config, "account")
        os.environ["password"] = handle_ini.get_content(config, "password")
        logger.info("当前测试配置:\n域名:{}\n燃气公司:{}\n账号:{}\n密码:{}".format(
            os.getenv("host"), os.getenv("companyAccount"),
            os.getenv("account"), os.getenv("password")))
        url = self.local_face_cfg.get_data(1)[0]
        user_data = json.loads(self.local_face_cfg.get_data(1)[1])

        user_data["companyAccount"] = os.getenv("companyAccount")
        user_data["account"] = os.getenv("account")
        user_data["password"] = os.getenv("password")
        return os.getenv("host") + url, user_data
예제 #16
0
    def test_history_data(self,table_id,start_time,meter_reading,meterCode):
        logger.info("$历史记录--{}$".format(table_id))

        report_time_list =[]
        no_report_item=[]
        url,data = config_data.get_history_data_info(meterCode)
        results = request_data.get_history_data(url,data)

        for i in results:
            timeArray = time.localtime(int(i["readingTime"]*0.001))
            otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
            report_time_list.append(otherStyleTime)

        start_time = start_time.split(":")[0]
        for item in mock_data.mock_history_time(int(start_time)):
            if item not in report_time_list:
                no_report_item.append(item)
        self.no_time_report[table_id] = no_report_item
        if len(self.no_time_report[table_id])>0:
            pytest.fail(f"表具{table_id}:历史记录整点未抄表时间点:\n{self.no_time_report[table_id]}")
예제 #17
0
    def test_reading_report(self, table_id, start_time, meter_reading,
                            meterCode):
        logger.info("$用量检查--{}$".format(table_id))
        url, data = config_data.get_consump_tion_statistic(meterCode)

        results = request_data.get_gas_consumption(url,
                                                   data)['data'][1]['value']
        print(request_data.get_gas_consumption(url, data)['data'])

        customerCode = request_data.get_user_info(
            config_data.get_user_info_ags(meterCode)).get(
                'data')['customerCode']
        if not customerCode:
            pytest.skip("没有绑定用户跳过此表具")
        ct_url, ct_data = config_data.get_consumption_month(customerCode)

        ct_results = request_data.get_user_customer_month(
            ct_url, ct_data)['data'][-1]['consumptionGas']

        if results != ct_results:
            pytest.fail("表具{}累计用气与报表累计用气不一致  \n\t用量统计:{}, 月累计用气:{}".format(
                table_id, results, ct_results))
예제 #18
0
 def setup_class(cls):
     logger.info("$用量检查$")
 def setup_class(cls):
     logger.info("$读数上报检查$")
 def setup_class(cls):
     logger.info("$表具状态校验$")
예제 #21
0
 def setup_class(cls):
     logger.info("$登录模块$")
     cls.info_items = []
     cls.data = []
예제 #22
0
 def test_login(self, config):
     logger.info("$登录$")
     url, data = config_data.get_user_info(config)
     request_data.login(url, data)
예제 #23
0
 def get_table_id(self, url, data):
     data = base_request.send_request(
         "get", url, data=data, header=self.handle_info["Handler"]).json()
     logger.info(f'表具ID:{data}')
     return data.get('data')
예제 #24
0
 def get_all_pyment(self, url):
     data = base_request.send_request(
         "post", url, header=self.handle_info["Handler"]).json()
     logger.info(f'总充值:{data}')
     return data.get('data')
예제 #25
0
 def setup_class(cls):
     logger.info("$上报成功率模块$")
     cls.no_time_report ={}
예제 #26
0
 def setup_class(cls):
     logger.info("$金额校验$")
예제 #27
0
 def get_config_info(self, url):
     data = base_request.send_request(
         "get", url, data=None, header=self.handle_info["Handler"]).json()
     logger.info(f'计费信息:{data}')
     return data