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