def test1_query_equip_auth(self): ''' 请求设备认证 :return: ''' host = self.host lujing = 'query_equip_auth' text = { "EquipAuthSeq": "{}".format(self.EquipAuthSeq), "ConnectorID": self.connID } encrypt_data = encrypt(self.DataSecret, str(text)) data = { "OperatorID": self.operator_id, "Data": "{}".format(encrypt_data), "TimeStamp": "{}".format(self.times), "Seq": "0001", "Sig": "{}".format( hmac_md5(self.SigSecret, self.operator_id + encrypt_data + self.times + "0001")) } headers = self.headers res = RunMethod().run_main('post', host, lujing, data, headers) undata = eval(decrypt(self.DataSecret, res['Data'])) miaoshu(url=host + lujing, method="post", data=text, check="{Ret and Msg}", respons=undata)
def test5_query_equip_charge_status(self): ''' 查询充电状态 :return: ''' host = self.host lujing = 'query_equip_charge_status' text = {"StartChargeSeq": "{}".format(self.order)} encrypt_data = encrypt(self.DataSecret, str(text)) data = { "OperatorID": self.operator_id, "Data": "{}".format(encrypt_data), "TimeStamp": "{}".format(self.times), "Seq": "0001", "Sig": "{}".format( hmac_md5(self.SigSecret, self.operator_id + encrypt_data + self.times + "0001")) } headers = self.headers res = RunMethod().run_main('post', host, lujing, data, headers) miaoshu(url=host + lujing, method="post", data=text, check="{Ret and Msg}", respons=res) self.assertTrue(res['Ret'] == 0, msg="状态码不正确") self.assertTrue(res['Msg'] == "请求成功", msg="返回msg不正确")
def setUpClass(cls): host = cls.host lujing = 'query_token' text = '{"OperatorID":"MA005DBW1","OperatorSecret":"2019092301abcdef"}' encrypt_data = encrypt(cls.DataSecret, text) data = { "OperatorID": cls.operator_id, "Data": "{}".format(encrypt_data), "TimeStamp": "{}".format(cls.times), "Seq": "0001", "Sig": "{}".format( hmac_md5(cls.SigSecret, cls.operator_id + encrypt_data + cls.times + "0001")) } headers = cls.headers res = RunMethod().run_main('post', host, lujing, data, headers) # res = requests.post(url=host + lujing, data=data, headers=header print(res) token = eval(decrypt(cls.DataSecret, res['Data']))['AccessToken'] cls.headers['Authorization'] = 'Bearer ' + token return cls.headers
def setUpClass(cls): host = cls.host lujing = 'query_token' text = '{"OperatorID":"MA59CU773","OperatorSecret":"7iPn98cO06iK6oP7"}' encrypt_data = encrypt(cls.DataSecret, text) print(encrypt_data) data = { "OperatorID": cls.operator_id, "Data": "{}".format(encrypt_data), "TimeStamp": "{}".format(cls.times), "Seq": "0001", "Sig": "{}".format( hmac_md5(cls.SigSecret, cls.operator_id + encrypt_data + cls.times + "0001")) } headers = cls.headers res = RunMethod().run_main('post', host, lujing, data, headers) token = eval(decrypt(cls.DataSecret, res['Data']))['AccessToken'] cls.headers['Authorization'] = 'Bearer ' + token return cls.headers
def test4_query_notification_start_charge_result(self, text): ''' 推送充电结果 :return: ''' host = self.host lujing = 'query_notification_start_charge_result' # text = {"StartChargeSeq": "{}".format(self.order), "ConnectorID": "{}".format(self.connID)} encrypt_data = encrypt(self.DataSecret, str(text)) data = { "OperatorID": self.operator_id, "Data": "{}".format(encrypt_data), "TimeStamp": "{}".format(self.times), "Seq": "0001", "Sig": "{}".format( hmac_md5(self.SigSecret, self.operator_id + encrypt_data + self.times + "0001")) } headers = self.headers res = RunMethod().run_main('post', host, lujing, data, headers) print(res) # undata = eval(decrypt(self.DataSecret, res['Data'])) miaoshu(url=host + lujing, method="post", data=text, check="{Ret and Msg}", respons=res)
def test1_query_stations_info(self, text): ''' 查询充电站信息 :return: ''' print(self.headers) host = self.host lujing = 'query_stations_info' encrypt_data = encrypt(self.DataSecret, text) data = { "OperatorID": self.operator_id, "Data": "{}".format(encrypt_data), "TimeStamp": "{}".format(self.times), "Seq": "0001", "Sig": "{}".format( hmac_md5(self.SigSecret, self.operator_id + encrypt_data + self.times + "0001")) } headers = self.headers res = RunMethod().run_main('post', host, lujing, data, headers) miaoshu(url=host + lujing, method="post", data=text, check="{Ret and Msg}", respons=res)
def test3_query_station_status(self): ''' 设备接口状态查询 :return: ''' host = self.host lujing = 'query_station_status' text = {"StationIDs": ["{}".format(self.stationID)]} encrypt_data = encrypt(self.DataSecret, str(text)) data = { "OperatorID": self.operator_id, "Data": "{}".format(encrypt_data), "TimeStamp": "{}".format(self.times), "Seq": "0001", "Sig": "{}".format( hmac_md5(self.SigSecret, self.operator_id + encrypt_data + self.times + "0001")) } headers = self.headers res = RunMethod().run_main('post', host, lujing, data, headers) undata = eval(decrypt(self.DataSecret, res['Data'])) miaoshu(url=host + lujing, method="post", data=text, check="{'StationIDs', 'ConnectorStatusInfos'}", respons=undata) self.assertTrue(res['Ret'] == 0, msg="状态码不正确") self.assertIn('StationStatusInfos', undata, msg='返回内容不正确')
def test8_datafield_error(self): ''' 检验请求的业务参数不合法(字段命名不正确) :return: ''' host = self.host lujing = 'query_token' text = '{"OperatorID":"359705330","OperatorSecret11":"11"}' encrypt_data = encrypt(self.DataSecret, text) print(encrypt_data) data = { "OperatorID": "MA35PU38X", "Data": "{}".format(encrypt_data), "TimeStamp": "{}".format(self.times), "Seq": "0001", "Sig": "{}".format( hmac_md5(self.SigSecret, "359705330" + encrypt_data + self.times + "0001")) } headers = self.headers res = RunMethod().run_main('post', host, lujing, data, headers) print("请求的业务参数:{}".format(text)) miaoshu(url=host + lujing, method="post", data=data, check="{'Ret': 4004 'Msg': '请求的业务参数不合法,各接口定义自己的必须参数'}", respons=res) self.assertTrue(res['Ret'] == 4004, msg="状态码不正确") self.assertTrue(res['Msg'] == "请求的业务参数不合法,各接口定义自己的必须参数")
def test5_dataMiSS_TimeStamp(self): ''' 检验post参数不合法,缺少必须参数TimeStamp :return: ''' encrypt_data = encrypt(self.DataSecret, self.text) sig = hmac_md5(self.SigSecret, "359705330" + encrypt_data + self.times + "0001") host = self.host lujing = 'query_token' data = { "OperatorID": "359705330", "Data": "{}".format(encrypt_data), "Seq": "0001", "Sig": "{}".format(sig) } headers = self.headers res = RunMethod().run_main('post', host, lujing, data, headers) miaoshu(url=host + lujing, method="post", data=data, check="{'Ret': 4003 'Msg': 'POST参数不合法,缺少必须的示例'}", respons=res) self.assertTrue(res['Ret'] == 4003, msg="状态码不正确") self.assertTrue( res['Msg'] == "POST参数不合法,缺少必须的示例:OperatorID,sig,TimeStamp,Data,Seq五个参数", msg="返回msg不正确")
def setUpClass(cls): cls.host = 'http://106.14.157.148:8090/evcs/v1/' cls.headers = {"Content-Type": "application/json; charset=utf-8"} cls.times = time.strftime("%Y%m%d%H%M%S", time.localtime()) cls.DataSecret = '78BxIeGT7zQYuN12' cls.SigSecret = 'b8aEBQGiyFyPmjSc' cls.text = '{"OperatorID":"359705330","OperatorSecret":"gZjHb3GK5ye5en1v"}' cls.encrypt_data = encrypt(cls.DataSecret, cls.text) cls.sig = hmac_md5(cls.SigSecret, '359705330' + cls.encrypt_data + cls.times + '0001') print(cls.sig)
def test4_query_stations_stats(self): ''' 查询统计信息 :return: ''' host = self.host lujing = 'query_station_stats' text = { "StationID": "{}".format(self.stationID), "StartTime": "2019-10-20", "EndTime": "2019-11-20" } encrypt_data = encrypt(self.DataSecret, str(text)) data = { "OperatorID": self.operator_id, "Data": "{}".format(encrypt_data), "TimeStamp": "{}".format(self.times), "Seq": "0001", "Sig": "{}".format( hmac_md5(self.SigSecret, self.operator_id + encrypt_data + self.times + "0001")) } headers = self.headers res = RunMethod().run_main('post', host, lujing, data, headers) # res = requests.post(url=host + lujing, json=data, headers=headers) undata = eval(decrypt(self.DataSecret, res['Data'])) miaoshu(url=host + lujing, method="post", data=text, check="{'Ret': 0, 'Msg': '请求成功',}", respons=undata) self.assertTrue(res['Ret'] == 0, msg="状态码不正确") self.assertIn('StationStatsInfo', undata, msg='返回内容不正确')
def test2_notification_stationStatus(self): ''' 设备状态变化推送 :return: ''' host = self.host lujing = 'notification_stationStatus' text = { "ConnectorStatusInfo": [{ "ConnectorID": "{}".format(self.connID), "Status": 1 }] } encrypt_data = encrypt(self.DataSecret, str(text)) data = { "OperatorID": self.operator_id, "Data": "{}".format(encrypt_data), "TimeStamp": "{}".format(self.times), "Seq": "0001", "Sig": "{}".format( hmac_md5(self.SigSecret, self.operator_id + encrypt_data + self.times + "0001")) } headers = self.headers res = RunMethod().run_main('post', host, lujing, data, headers) miaoshu(url=host + lujing, method="post", data=text, check="{'Ret': 0, 'Msg': '请求成功',}", respons=res) self.assertTrue(res.status_code == 200, msg="状态码不正确")