網站首頁 編程語言 正文
python rpyc客戶端調用服務端方法
使用rpyc遇到兩個問題:
問題1
client調用server的exposed_xxxx()方法時傳進去的參數類型,到了server端會改變,
打印出來是<netref class 'rpyc.core.netref.type'>類型,與原來傳進的類型不同
解決方法:
def exposed_clentA_will_use(self, hello):
? ? hello = rpyc.classic.obtain(hello)
這樣就把傳進來的hello轉變為本地類型,如果本地沒有這種類型,需要創建這種類型
比如傳進來的是<class 'numpy.ndarray'>類型,但是server本地沒有,則需要import numpy
問題2
client調用server的方法時有報錯ValueError: pickling is disabled
解決方法:
rpyc_config = rpyc.core.protocol.DEFAULT_CONFIG
rpyc_config['allow_pickle'] = True?
host_ip = '127.0.0.1'?
conn = rpyc.connect(host_ip, port = 33333, config = rpyc_config)
由于是不安全的協議,需要手動允許pickle
字面意思也明確了:allow_pickle
python rpyc的使用心得
6月份,在公司做APP和Web自動化測試開發,碰到一個比較棘手的問題是:APP需要和Web一起操作才能走完整個測試流程。
但是APP和Web使用的是不同的測試工具,Appium和Selenium,測試框架也是獨立的。如何把二者整合起來呢?
沒錯,python rpyc模塊派上用場了,這里使用python rpyc對Web頁面相關的操作做了二次封裝。
from rpyc import Service
from rpyc.utils.server import ThreadedServer
class MyService(Service):
? ? def exposed_bid(xxx):
? ? ? ? back_page.bid(xxx)
s=ThreadedServer(MyService,port=12233,listener_timeout=300,auto_register=False)
s.start()
在APP自動化測試腳本里面,這樣調用即可:
c = rpyc.connect('localhost',12233)
c.root.bid(xxxx)
但是在APP測試腳本運行過程中,會出現rpyc調用超時的情況,這是因為rpyc默認的調用等待時間只有30s,如果某些rpyc調用的等待時間超過30s就會報錯,解決方法很簡單,在rpyc包的protocol.py文件中找到
SYNC_REQUEST_TIMEOUT,改大即可。
原文鏈接:https://blog.csdn.net/Riven_h/article/details/117519846
相關推薦
- 2022-03-23 C++虛函數注意事項_C 語言
- 2022-07-22 React警告:Can‘t perform a React state update on an u
- 2022-04-15 python實現選取或刪除指定列包含指定內容的行_python
- 2022-07-30 jQuery?UI組件介紹_jquery
- 2022-01-17 滑動列表數據按照A-Z首字母排列,右邊A-Z能動態定位到相應字母位置
- 2023-03-27 python中的正則表達式,貪婪匹配與非貪婪匹配方式_python
- 2023-02-12 Android畫中畫窗口開啟方法_Android
- 2022-07-27 flask實現python方法轉換服務的方法_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支