python?rpyc客戶端調(diào)用服務(wù)端方法的注意說明
python rpyc客戶端調(diào)用服務(wù)端方法
使用rpyc遇到兩個問題:
問題1
client調(diào)用server的exposed_xxxx()方法時傳進(jìn)去的參數(shù)類型,到了server端會改變,
打印出來是<netref class 'rpyc.core.netref.type'>類型,與原來傳進(jìn)的類型不同
解決方法:
def exposed_clentA_will_use(self, hello): ? ? hello = rpyc.classic.obtain(hello)
這樣就把傳進(jìn)來的hello轉(zhuǎn)變?yōu)楸镜仡愋?,如果本地沒有這種類型,需要創(chuàng)建這種類型
比如傳進(jìn)來的是<class 'numpy.ndarray'>類型,但是server本地沒有,則需要import numpy
問題2
client調(diào)用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)
由于是不安全的協(xié)議,需要手動允許pickle
字面意思也明確了:allow_pickle
python rpyc的使用心得
6月份,在公司做APP和Web自動化測試開發(fā),碰到一個比較棘手的問題是:APP需要和Web一起操作才能走完整個測試流程。
但是APP和Web使用的是不同的測試工具,Appium和Selenium,測試框架也是獨(dú)立的。如何把二者整合起來呢?
沒錯,python rpyc模塊派上用場了,這里使用python rpyc對Web頁面相關(guān)的操作做了二次封裝。
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自動化測試腳本里面,這樣調(diào)用即可:
c = rpyc.connect('localhost',12233) c.root.bid(xxxx)
但是在APP測試腳本運(yùn)行過程中,會出現(xiàn)rpyc調(diào)用超時的情況,這是因為rpyc默認(rèn)的調(diào)用等待時間只有30s,如果某些rpyc調(diào)用的等待時間超過30s就會報錯,解決方法很簡單,在rpyc包的protocol.py文件中找到
SYNC_REQUEST_TIMEOUT,改大即可。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)感知器模型、兩層神經(jīng)網(wǎng)絡(luò)
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)感知器模型、兩層神經(jīng)網(wǎng)絡(luò),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12python爬蟲簡單的添加代理進(jìn)行訪問的實(shí)現(xiàn)代碼
本文通過實(shí)例代碼給大家介紹了python爬蟲簡單的添加代理進(jìn)行訪問,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04python 實(shí)現(xiàn)登錄網(wǎng)頁的操作方法
今天小編就為大家分享一篇python 實(shí)現(xiàn)登錄網(wǎng)頁的操作方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05Pandas數(shù)據(jù)連接pd.concat的實(shí)現(xiàn)
本文主要介紹了Pandas數(shù)據(jù)連接pd.concat的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07Matlab如何實(shí)現(xiàn)矩陣復(fù)制擴(kuò)充
這篇文章主要介紹了使用Matlab實(shí)現(xiàn)矩陣復(fù)制擴(kuò)充的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06Python基于hashlib模塊的文件MD5一致性加密驗證示例
這篇文章主要介紹了Python基于hashlib模塊的文件MD5一致性加密驗證,涉及Python使用hashlib模塊進(jìn)行字符串與文件的MD5加密驗證操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-02-02