def test04_info_admin(self): """4、管理员登录后,设备信息捕获。 """ rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、登录设备/管理员") t = c.checkAction(url, data_login) time.sleep(1) rm = read_message.ReadMessage() data = rm.get_data("捕获设备信息", "info") # 获取device.info.read命令发送数据包。 ws = self.ws print("step 2、发送“查询设备信息”数据。") t = c.checkAction(ws, data) self.assertEqual(t["success"], True) print("设备名称:%s" % t["data"]["device_name"]) print("分组:%s" % t["data"]["device_group"]) print("设备ip:%s" % t["data"]["device_ip"]) print("设备网关:%s" % t["data"]["device_gateway"]) print("设备子网:%s" % t["data"]["device_mask"]) print("是否被占用:%s" % t["data"]["is_occupied"]) print("占用者ip:%s" % t["data"]["occupier_ip"]) print("占用者名字:%s" % t["data"]["occupier_name"]) data_logout = rm.get_data("退出登录", "logout") print("step 3、退出登录。") t = c.checkAction(url, data_logout) self.assertEqual(t["success"], True)
def test03_FileQuery_log(self): """5. 控制器查询文件列表/查询log目录 """ rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、控制设备:") c.checkAction(url, data_login) time.sleep(1) data_file_query = rm.get_data("控制器查询文件列表", "file_query_log") print("step 2、查询log目录。") t = c.checkAction(url, data_file_query) print(t) self.assertEqual(t["success"], True) time.sleep(1) print("step 3、列出log目录文件名称:") files = t["data"]["file_list"] file_list = list(files) path = 'C:\\Users\\test\\AppData\\Local\\Programs\\Python\\Python36\\autotest\\websocket_api_2.0.1\\files\\LogFile_name.txt' if os.path.exists(path): os.remove(path) #先删除之前写过的文件 for file in file_list: print(file) WR_file.WriteFile_add(path, file) #追加写入脚本文件名 print("step 4、log文件名保存到文件: %s。" % path) data_logout = rm.get_data("退出登录", "logout") print("step 5、释放设备:") c.checkAction(url, data_logout)
def test03_LogFile_send(self): """1. 控制器发送文件/日志文件/读取一个日志文件 """ rm=read_message.ReadMessage() data_login=rm.get_data("登录设备","login_admin") url=self.ws print("step 1、控制设备:") c.checkAction(url,data_login) time.sleep(1) log_list=['qxlog.log','qxlog_detail.log','qxlog_detail.1.log','qxlog_detail.2.log','qxlog_detail.3.log','qxlog_detail.4.log','qxlog_detail.5.log'] for log_name in log_list: data_file_send=rm.get_data("控制器发送文件","file_send_log") data_dict=json.loads(data_file_send) data_dict["data"]["file_name"]="%s"%log_name print("step 2、从设备读取配置文件:"+data_dict["data"]["file_name"]) t=c.checkAction(url,data_file_send) time.sleep(1) self.assertEqual(t["success"],True) print("%s log文件读取成功。"%log_name) print("step 3、解码后保存到files目录。") str=t["data"]["value"] file_content=Base_64.decode(str) path='C:\\Users\\test\\AppData\\Local\\Programs\\Python\\Python36\\autotest\\websocket_api_2.0.1\\files\\'+log_name WR_file.WriteFile(path,file_content) print("%s LOG文件保存成功。"%log_name) data_logout=rm.get_data("退出登录","logout") print("step 4、释放设备:") c.checkAction(url,data_logout)
def test03_write_io_on(self): """2、设置本地IO_on """ rm=read_message.ReadMessage() data_login=rm.get_data("登录设备","login_admin") url=self.ws print("step 1、管理员登录。") c.checkAction(url,data_login) time.sleep(1) data_io_set=rm.get_data("设置本地IO","io_write_local_on") print("step 2、设置io:") io_list=["red","green","yellow","relayflag"] data_dict=json.loads(data_io_set) for name in io_list: data_dict["data"]["name"]=name print("修改io:%s"%name ) data_io_set=json.dumps(data_dict) t=c.checkAction(url,data_io_set) if t["success"]==True: print("状态置为1。") else: print("io状态修改失败。") time.sleep(1) data_logout=rm.get_data("退出登录","logout") print("step 3、退出登录。") c.checkAction(url,data_logout)
def ws_connect(): is_sigint_up = False rt = read_info.ReadInfo() web = rt.get_device_ip() port = rt.get_port() url = web + ":" + port try: ws = create_connection(url, timeout=10) #建立设备连接 rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_monitor") print("step 1、登录设备/监控者") t = c.checkAction(ws, data_login) # rm=read_message.ReadMessage() # data_query_position=rm.get_data("31","query_position") while (is_sigint_up == False): if ws.connected: print("服务:%s连接成功!" % url) # t=ws.recv() t = json.loads(ws.recv()) print(t) # print("查询脚本行数位置。") # c.checkAction(ws,data_query_position) ws.close() except Exception as e: print("websocket连接失败:%s" % e) pass
def test05_read_io_default(self): """5、读取default IO:default 不可修改 """ rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、管理员登录。") c.checkAction(url, data_login) time.sleep(1) data_io_read = rm.get_data("读取本地IO", "io_read_local_Z0") print("step 2、读取default_io:") io_list = ["stop_input", "X6"] data_dict = json.loads(data_io_read) for name in io_list: data_dict["data"]["name"] = name print("读取io的参数:%s" % name) data_io_set = json.dumps(data_dict) t = c.checkAction(url, data_io_set) if t["success"] == True: print("读取default_io成功") else: print("读取default_io失败。") time.sleep(0.1) data_logout = rm.get_data("退出登录", "logout") print("step 3、退出登录。") c.checkAction(url, data_logout)
def test04_clear_default(self): """清除默认脚本 """ rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、管理员登录设备。") c.checkAction(url, data_login) time.sleep(1) data_def_script = rm.get_data("设置默认脚本", "script_set_default_clear") print("step 2、清除默认程序设置。") t = c.checkAction(url, data_def_script) self.assertEqual(t["success"], True) time.sleep(1) data_def_script = rm.get_data("查询脚本信息", "script_query_script_name") print("step 3、查询tutorial.lua脚本信息。") t1 = c.checkAction(url, data_def_script) self.assertEqual(t["success"], True) time.sleep(1) if t1["data"]["default"] == False: print("default脚本清除成功!") else: print("default脚本清除失败!") data_logout = rm.get_data("退出登录", "logout") print("step 4、退出设备:") t = c.checkAction(url, data_logout) self.assertEqual(t["success"], True)
def test02_read_io_param(self): """2、按配置读取IO:nick_name 可修改 """ rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、管理员登录。") c.checkAction(url, data_login) time.sleep(1) data_io_read = rm.get_data("读取本地IO", "io_read_local_Z0") print("step 2、按配置参数读取io:") io_list = [ "input_0", "input_1", "input_2", "input_3", "input_4", "input_5", "X0", "X1", "X2", "X3", "X4", "X5" ] data_dict = json.loads(data_io_read) for name in io_list: data_dict["data"]["name"] = name print("读取io的参数:%s" % name) data_io_set = json.dumps(data_dict) t = c.checkAction(url, data_io_set) if t["success"] == True: print("读取io成功") else: print("读取io失败。") time.sleep(0.1) data_logout = rm.get_data("退出登录", "logout") print("step 3、退出登录。") c.checkAction(url, data_logout)
def test01_install_script(self): """3.控制器安装文件/安装script """ rm=read_message.ReadMessage() data_login=rm.get_data("登录设备","login_admin") url=self.ws print("step 1、控制设备:") c.checkAction(url,data_login) time.sleep(1) data_install_file=rm.get_data("控制器安装文件","file_install_script") # """重新设置安装文件名""" # data_dict=json.loads(data_install_file) # data_dict["data"]["index"]=1 # data_dict["data"]["file_name"]="test.lua" # print("安装脚本:"+data_dict["data"]["file_name"]) # data_install_file=json.dumps(data_dict) # print(data_install_file) print("step 2、安装script文件: test.lua。") t=c.checkAction(url,data_install_file) self.assertEqual(t["success"],True) time.sleep(1) data_logout=rm.get_data("退出登录","logout") print("step 3、释放设备:") c.checkAction(url,data_logout)
def test04_ConfigFile_send_all(self): """1. 控制器发送文件/配置文件/读取所有配置文件 """ rm=read_message.ReadMessage() data_login=rm.get_data("登录设备","login_admin") url=self.ws print("step 1、控制设备:") c.checkAction(url,data_login) time.sleep(1) print("step 2、从设备中读取config目录下所有配置文件。 ") print("step 3、解码后保存到files目录。") fpath='C:\\Users\\test\\AppData\\Local\\Programs\\Python\\Python36\\autotest\\websocket_api_2.0.1\\files\\ConfigFile_name.txt' for f_name in WR_file.ReadFile(fpath): """重新设置安装文件名""" data_file_send=rm.get_data("控制器发送文件","file_send_config") data_dict=json.loads(data_file_send) data_dict["data"]["file_name"]="%s"%f_name print("开始读取config文件:"+data_dict["data"]["file_name"]) data_file_send=json.dumps(data_dict) t=c.checkAction(url,data_file_send) time.sleep(1) self.assertEqual(t["success"],True) print("%s config文件读取成功。"%f_name) str=t["data"]["value"] file_content=Base_64.decode(str) path='C:\\Users\\test\\AppData\\Local\\Programs\\Python\\Python36\\autotest\\websocket_api_2.0.1\\files\\'+f_name WR_file.WriteFile(path,file_content) print("%s config文件保存成功。"%f_name) data_logout=rm.get_data("退出登录","logout") print("step 4、释放设备:") c.checkAction(url,data_logout)
def test01_read_io(self): """1、读取本地IO """ rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、管理员登录。") c.checkAction(url, data_login) time.sleep(0.5) # data_io_read=rm.get_data("读取本地IO","io_read_local_Z0") # print("step 2、读取Z0的io。") # t=c.checkAction(url,data_io_read) # self.assertEqual(t["success"],True) # time.sleep(0.5) data_io_read = rm.get_data("读取本地IO", "io_read_local_X0") print("step 3、读取X0的io。") t = c.checkAction(url, data_io_read) self.assertEqual(t["success"], True) time.sleep(0.5) data_io_read = rm.get_data("读取本地IO", "io_read_local_X1") print("step 4、读取X1的io。") t = c.checkAction(url, data_io_read) self.assertEqual(t["success"], True) time.sleep(0.5) data_io_read = rm.get_data("读取本地IO", "io_read_local_X2") print("step 5、读取X2的io。") t = c.checkAction(url, data_io_read) self.assertEqual(t["success"], True) time.sleep(0.5) data_io_read = rm.get_data("读取本地IO", "io_read_local_X3") print("step 6、读取X3的io。") t = c.checkAction(url, data_io_read) self.assertEqual(t["success"], True) time.sleep(0.5) data_io_read = rm.get_data("读取本地IO", "io_read_local_X4") print("step 7、读取X4的io。") t = c.checkAction(url, data_io_read) self.assertEqual(t["success"], True) time.sleep(0.5) data_io_read = rm.get_data("读取本地IO", "io_read_local_X5") print("step 8、读取X5的io。") t = c.checkAction(url, data_io_read) self.assertEqual(t["success"], True) time.sleep(0.5) data_logout = rm.get_data("退出登录", "logout") print("step 3、退出登录。") c.checkAction(url, data_logout)
def test01_modbus_connect(self): """激活index_server:3的modbus连接 """ rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、管理员登录。") c.checkAction(url, data_login) time.sleep(1) rm = read_message.ReadMessage() data_modbus_connect = rm.get_data("Modbus连接", "io_modbus_connect") url = self.ws print("step 2、激活index_server:3的modbus连接。") t = c.checkAction(url, data_modbus_connect) self.assertEqual(t["success"], True) time.sleep(1) data_logout = rm.get_data("退出登录", "logout") print("step 3、退出登录。") c.checkAction(url, data_logout)
def test01_info(self): """1、无需登录直接捕获。 """ rm = read_message.ReadMessage() data = rm.get_data("捕获设备信息", "info") # 获取device.info.read命令发送数据包。 ws = self.ws print("发送“查询设备信息”数据。") t = c.checkAction(ws, data) self.assertEqual(t["success"], True) print("设备网关:%s" % t["data"]["device_gateway"]) print("设备ip:%s" % t["data"]["device_ip"]) print("设备子网:%s" % t["data"]["device_mask"]) print("设备名称:%s" % t["data"]["device_name"])
def test03_login_admin(self): """1. 登录设备/管理员""" rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、登录设备/管理员") t = c.checkAction(url, data_login) self.assertEqual(t["success"], True) time.sleep(1) data_logout = rm.get_data("退出登录", "logout") print("step 2、退出登录。") t = c.checkAction(url, data_logout) self.assertEqual(t["success"], True)
def test04_write_io_on(self): """4、设置本地IO_on:nick_name 可修改 """ rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、管理员登录。") c.checkAction(url, data_login) time.sleep(0.2) data_io_set = rm.get_data("设置本地IO", "io_write_local_on") print("step 2、设置io:") io_list = [ "output_0", "output_1", "output_2", "output_3", "output_4", "output_5", "output_6", "output_7", "output_0", "Y0", "Y1", "Y2", "Y3", "Y4", "Y5", "Y6", "Y7" ] data_dict = json.loads(data_io_set) data_io_read = rm.get_data("读取本地IO", "io_read_local_Z0") data_dict_read = json.loads(data_io_read) for name in io_list: data_dict["data"]["name"] = name print("修改io:%s" % name) data_io_set = json.dumps(data_dict) t = c.checkAction(url, data_io_set) if t["success"] == True: print("状态置为1。") else: print("io状态修改失败。") time.sleep(0.1) data_dict_read["data"]["name"] = name print("读取io:%s" % name) data_io_read = json.dumps(data_dict_read) t = c.checkAction(url, data_io_read) if t["success"] == True: print("io: %s 的state值为:%s。" % (name, t["data"]["state"])) else: print("io:%s读取失败。" % name) time.sleep(0.1) data_logout = rm.get_data("退出登录", "logout") print("step 3、退出登录。") c.checkAction(url, data_logout)
def test05_FileRemove_temp_script(self): """4.控制器删除文件/删除temp_script文件 """ rm=read_message.ReadMessage() data_login=rm.get_data("登录设备","login_admin") url=self.ws print("step 1、控制设备:") c.checkAction(url,data_login) time.sleep(1) data_file_delete=rm.get_data("控制器删除文件","file_remove_temp_script") print("step 2、删除temp_script文件:test.lua。") t=c.checkAction(url,data_file_delete) self.assertEqual(t["success"],True) time.sleep(1) data_logout=rm.get_data("退出登录","logout") print("step 3、释放设备:") c.checkAction(url,data_logout)
def test01_read_io(self): """1、读取本地IO """ rm=read_message.ReadMessage() data_login=rm.get_data("登录设备","login_admin") url=self.ws print("step 1、管理员登录。") c.checkAction(url,data_login) time.sleep(1) data_io_read=rm.get_data("读取本地IO","io_read_local_relayflag") print("step 2、读取Z0的io。") t=c.checkAction(url,data_io_read) self.assertEqual(t["success"],True) time.sleep(1) data_logout=rm.get_data("退出登录","logout") print("step 3、退出登录。") c.checkAction(url,data_logout)
def test03_file_receive_update(self): """2. 控制器接收文件/发送文件类型:update""" rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、控制设备:") c.checkAction(url, data_login) time.sleep(1) data_file_receive = rm.get_data("控制器接收文件", "file_receive_update") print("step 2、向设备写入升级文件test.reb。") t = c.checkAction(url, data_file_receive) self.assertEqual(t["success"], True) time.sleep(1) data_logout = rm.get_data("退出登录", "logout") print("step 3、释放设备:") c.checkAction(url, data_logout)
def test03_install_update(self): """3.控制器安装文件/安装update """ rm=read_message.ReadMessage() data_login=rm.get_data("登录设备","login_admin") url=self.ws print("step 1、控制设备:") c.checkAction(url,data_login) time.sleep(1) data_install_file=rm.get_data("控制器安装文件","file_install_update") print("step 2、安装update文件: test.reb。") t=c.checkAction(url,data_install_file) self.assertEqual(t["success"],True) time.sleep(1) data_logout=rm.get_data("退出登录","logout") print("step 3、释放设备:") c.checkAction(url,data_logout)
def test04_write_modbus_register(self): """设置MODBUS/设备之间/写寄存器 """ rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、管理员登录。") c.checkAction(url, data_login) time.sleep(1) data_modbus_set = rm.get_data("设置MODBUS", "io_write_modbus") print("step 2、写入寄存器。") # "agreement":"T", # "server_index":3, # "type":0, # "address":20, # "value":10 agreement = ["T", "R", "A"] server_index = [0, 3] type = 3 address = [2, 20, 120, 300] value = [3, 49, 100, 2684] data_dict = json.loads(data_modbus_set) data_dict["data"]["type"] = type for index in server_index: data_dict["data"]["server_index"] = index print("modbus机器号:%s" % index) for address1 in address: data_dict["data"]["address"] = address1 print("写入的寄存器地址:%s" % address1) for values in value: data_dict["data"]["value"] = values data_modbus_set = json.dumps(data_dict) t = c.checkAction(url, data_modbus_set) if t["success"] == True: print("%s号机器的%s地址值设置:%s成功。" % (index, address1, values)) else: print("%s号机器的%s地址设置失败。" % (index, address1)) time.sleep(0.5) data_logout = rm.get_data("退出登录", "logout") print("step 3、退出登录。") c.checkAction(url, data_logout)
def test01_set_default(self): """3. 设置默认脚本 """ rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、管理员登录设备。") c.checkAction(url, data_login) time.sleep(1) data_def_script = rm.get_data("设置默认脚本", "script_set_default") print("step 2、设置tutorial.lua为默认程序。") t = c.checkAction(url, data_def_script) self.assertEqual(t["success"], True) time.sleep(1) data_logout = rm.get_data("退出登录", "logout") print("step 3、退出设备:") t = c.checkAction(url, data_logout) self.assertEqual(t["success"], True)
def test07_write_io_default_on(self): """7、设置本地IO_on:default 不可修改 """ rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、管理员登录。") c.checkAction(url, data_login) time.sleep(0.2) data_io_set = rm.get_data("设置本地IO", "io_write_local_on") print("step 2、设置io:") io_list = [ "red", "Y8", "green", "Y9", "yellow", "Y10", "stop_output", "Y11" ] data_dict = json.loads(data_io_set) data_io_read = rm.get_data("读取本地IO", "io_read_local_Z0") data_dict_read = json.loads(data_io_read) for name in io_list: data_dict["data"]["name"] = name print("修改default_io:%s" % name) data_io_set = json.dumps(data_dict) t = c.checkAction(url, data_io_set) if t["success"] == True: print("状态置为1。") else: print("io状态修改失败。") time.sleep(0.1) data_dict_read["data"]["name"] = name print("读取io:%s" % name) data_io_read = json.dumps(data_dict_read) t = c.checkAction(url, data_io_read) if t["success"] == True: print("io: %s 的state值为:%s。" % (name, t["data"]["state"])) else: print("io:%s读取失败。" % name) time.sleep(0.1) data_logout = rm.get_data("退出登录", "logout") print("step 3、退出登录。") c.checkAction(url, data_logout)
def test05_read_modbus_register(self): """读取MODBUS/设备之间 /读寄存器""" rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、管理员登录。") c.checkAction(url, data_login) time.sleep(1) data_modbus_read = rm.get_data("读取MODBUS", "io_read_modbus") print("step 2、读取寄存器。") # "agreement":"T", # "server_index":3, # "type":0, # "address":20 server_index = [0, 3] type = 2 address = [2, 20, 120, 300] data_dict = json.loads(data_modbus_read) data_dict["data"]["type"] = type for index in server_index: data_dict["data"]["server_index"] = index print("modbus机器号:%s" % index) for address1 in address: data_dict["data"]["address"] = address1 print("读取的寄存器地址:%s" % address1) data_modbus_read = json.dumps(data_dict) t = c.checkAction(url, data_modbus_read) if t["success"] == True: print("%s号机器的%s地址值读取为:%s。" % (index, address1, t["data"]["value"])) else: print("%s号机器的%s地址设置失败。" % (index, address1)) time.sleep(0.5) data_logout = rm.get_data("退出登录", "logout") print("step 3、退出登录。") c.checkAction(url, data_logout)
def test05_password_reset_operator(self): """3. 修改密码/操作者无权修改密码""" rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_operator") url = self.ws print("step 1、登录设备/操作者") t = c.checkAction(url, data_login) self.assertEqual(t["success"], True) time.sleep(1) data_reset = rm.get_data("修改密码", "password_reset_operator") url = self.ws print("step 2、修改操作者密码") t = c.checkAction(url, data_reset) self.assertEqual(t["success"], False) print("操作者无权修改密码") time.sleep(1) data_logout = rm.get_data("退出登录", "logout") print("step 3、退出登录。") t = c.checkAction(url, data_logout) self.assertEqual(t["success"], True)
def test06_password_reset_admin(self): """3. 修改密码/管理员可以修改密码""" rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、登录设备/管理员") t = c.checkAction(url, data_login) self.assertEqual(t["success"], True) time.sleep(1) data_reset_monitor = rm.get_data("修改密码", "password_reset_monitor") url = self.ws print("step 2、修改监控者密码") t = c.checkAction(url, data_reset_monitor) self.assertEqual(t["success"], True) print("成功修改临控者密码") time.sleep(1) data_reset_operator = rm.get_data("修改密码", "password_reset_operator") url = self.ws print("step 3、修改操作者密码") t = c.checkAction(url, data_reset_operator) self.assertEqual(t["success"], True) print("成功修改操作者密码") time.sleep(1) data_reset_admin = rm.get_data("修改密码", "password_reset_admin") url = self.ws print("step 4、修改管理员密码") t = c.checkAction(url, data_reset_admin) self.assertEqual(t["success"], True) print("成功修改管理员密码") time.sleep(1) data_logout = rm.get_data("退出登录", "logout") print("step 5、退出登录。") t = c.checkAction(url, data_logout) self.assertEqual(t["success"], True)
def test03_query_default(self): """4. 查询脚本信息/查询默认脚本 """ rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws print("step 1、管理员登录设备。") c.checkAction(url, data_login) time.sleep(1) data_def_script = rm.get_data("查询脚本信息", "script_query_script_default") print("step 3、查询默认脚本信息。") t = c.checkAction(url, data_def_script) self.assertEqual(t["success"], True) time.sleep(1) if t["data"]["default"] == True and t["data"]["name"] == 'tutorial.lua': print("default脚本查询正确!") else: print("default脚本查询错误!") data_logout = rm.get_data("退出登录", "logout") print("step 3、退出设备:") t = c.checkAction(url, data_logout) self.assertEqual(t["success"], True)
def test02_ConfigFile_send(self): """1. 控制器发送文件/配置文件/读取一个配置文件 """ rm=read_message.ReadMessage() data_login=rm.get_data("登录设备","login_admin") url=self.ws print("step 1、控制设备:") c.checkAction(url,data_login) time.sleep(1) data_file_send=rm.get_data("控制器发送文件","file_send_config") print("step 2、从设备读取配置文件:lua.json ") t=c.checkAction(url,data_file_send) time.sleep(1) self.assertEqual(t["success"],True) print("step 3、解码后保存到files目录。") str=t["data"]["value"] file_content=Base_64.decode(str) path='C:\\Users\\test\\AppData\\Local\\Programs\\Python\\Python36\\autotest\\websocket_api_2.0.1\\files\\lua.json' WR_file.WriteFile(path,file_content) data_logout=rm.get_data("退出登录","logout") print("step 4、释放设备:") c.checkAction(url,data_logout)
def test01_script_control(self): """脚本运行控制相关操作。 """ rm=read_message.ReadMessage() data_login=rm.get_data("登录设备","login_admin") url=self.ws print("step 1、管理员登录设备。") c.checkAction(url,data_login) time.sleep(1) # data_clear_error=rm.get_data("清除设备错误","clear_error") # url=self.ws # print("无论是否有错误,先清除错误。") # c.checkAction(url,data_clear_error) # time.sleep(3) data_servo_enable=rm.get_data("伺服使能","servo_enable") print("step 2、伺服使能。") c.checkAction(url,data_servo_enable) time.sleep(4) data_script_start=rm.get_data("脚本运行控制","script_start") print("step 3、运行脚本:tutorial.lua.") t1=c.checkAction(url,data_script_start) # self.assertEqual(t1["success"],True) time.sleep(5) data_velocity=rm.get_data("调整全局速度","adjust_velocity") print("step 4、调节运行速度为40%") t2=c.checkAction(url,data_velocity) # self.assertEqual(t2["success"],True) time.sleep(5) data_script_pause=rm.get_data("脚本运行控制","script_pause") print("step 5、暂停脚本运行:") t3=c.checkAction(url,data_script_pause) # self.assertEqual(t3["success"],True) time.sleep(5) data_script_continue=rm.get_data("脚本运行控制","script_continue") print("step 6、暂停后继续脚本运行:") t4=c.checkAction(url,data_script_continue) # self.assertEqual(t4["success"],True) time.sleep(5) data_script_emergency=rm.get_data("紧急停止","emergency_stop") print("step 7、运行过程中急停。") t=c.checkAction(url,data_script_emergency) # self.assertEqual(t["success"],True) time.sleep(5) data_script_start=rm.get_data("脚本运行控制","script_start") print("step 8、运行脚本:tutorial.lua.") t6=c.checkAction(url,data_script_start) # self.assertEqual(t6["success"],True) time.sleep(5) data_script_stop=rm.get_data("脚本运行控制","script_stop") print("step 9、停止脚本运行:") t5=c.checkAction(url,data_script_stop) # self.assertEqual(t5["success"],True) time.sleep(5) data_servo_disable=rm.get_data("伺服失能","servo_disable") print("step 10、伺服失能.") t7=c.checkAction(url,data_servo_disable) # self.assertEqual(t7["success"],True) time.sleep(3) data_logout=rm.get_data("退出登录","logout") print("step 11、退出登录。") c.checkAction(url,data_logout) time.sleep(3)
def test_install(self): """控制器接收文件""" rm = read_message.ReadMessage() data_login = rm.get_data("登录设备", "login_admin") url = self.ws path = self.path filename = self.filename print("step 1、管理员登录设备。") c.checkAction(url, data_login) time.sleep(1) print("step 2、向设备写入脚本:") # """一个总包直接传输文件""" # f=open(path,'r',encoding='utf-8') # str=f.read() # script_base64=Base_64.encode(str) # f.close() # data_file={ # "action":"device.file.receive", # "data":{ # "type":"script", # "file_name":filename, # "md5":"", # "total":1, # "index":1, # "content":script_base64 # } # } # data_file=json.dumps(data_file) # c.checkAction(url,data_file) """分包写入文件""" Block_Size = self.size total = s.total_count(path, Block_Size) str_md5 = s.read_a_file(path) md5 = to_md5.md5(str_md5) print("总包数为:%s" % total) index = 1 for content in s.read_file(path, Block_Size): str = content script_base64 = Base_64.encode(str) data_file = { "action": "file.receive", "data": { "type": "script", "file_name": filename, "total": total, "index": index, "md5": "%s" % md5, "value": script_base64 } } data_file = json.dumps(data_file) c.checkAction(url, data_file) index = index + 1 print(script_base64) data_install_script = rm.get_data("控制器安装文件", "file_install_script") """重新设置安装文件名""" data_dict = json.loads(data_install_script) data_dict["data"]["index"] = self.i data_dict["data"]["file_name"] = "%s" % filename print("安装脚本:" + data_dict["data"]["file_name"]) data_install_script = json.dumps(data_dict) print(data_install_script) print("step 3、安装%s文件" % filename) c.checkAction(url, data_install_script) time.sleep(2)