您的位置:首頁 > 教程 > python > python?rpyc客戶端調用服務端方法的注意說明

python?rpyc客戶端調用服務端方法的注意說明

2022-06-18 12:01:06 來源:易采站長站 作者:

python?rpyc客戶端調用服務端方法的注意說明

目錄
python rpyc客戶端調用服務端方法問題1問題2python rpyc的使用心得

mVY站長之家-易采站長站-Easck.Com

python>

使用rpyc遇到兩個問題:mVY站長之家-易采站長站-Easck.Com

mVY站長之家-易采站長站-Easck.Com

問題1

client調用server的exposed_xxxx()方法時傳進去的參數類型,到了server端會改變,mVY站長之家-易采站長站-Easck.Com

打印出來是<netref>

解決方法:mVY站長之家-易采站長站-Easck.Com

def exposed_clentA_will_use(self, hello):
? ? hello = rpyc.classic.obtain(hello)

這樣就把傳進來的hello轉變為本地類型,如果本地沒有這種類型,需要創建這種類型mVY站長之家-易采站長站-Easck.Com

比如傳進來的是<class 'numpy.ndarray'>類型,但是server本地沒有,則需要import numpymVY站長之家-易采站長站-Easck.Com

mVY站長之家-易采站長站-Easck.Com

問題2

client調用server的方法時有報錯ValueError:>

解決方法:mVY站長之家-易采站長站-Easck.Com

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)

由于是不安全的協議,需要手動允許picklemVY站長之家-易采站長站-Easck.Com

字面意思也明確了:allow_picklemVY站長之家-易采站長站-Easck.Com

mVY站長之家-易采站長站-Easck.Com

python>

6月份,在公司做APP和Web自動化測試開發,碰到一個比較棘手的問題是:APP需要和Web一起操作才能走完整個測試流程。mVY站長之家-易采站長站-Easck.Com

但是APP和Web使用的是不同的測試工具,Appium和Selenium,測試框架也是獨立的。如何把二者整合起來呢?mVY站長之家-易采站長站-Easck.Com

沒錯,python rpyc模塊派上用場了,這里使用python rpyc對Web頁面相關的操作做了二次封裝。mVY站長之家-易采站長站-Easck.Com

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自動化測試腳本里面,這樣調用即可:mVY站長之家-易采站長站-Easck.Com

c = rpyc.connect('localhost',12233)
c.root.bid(xxxx)

但是在APP測試腳本運行過程中,會出現rpyc調用超時的情況,這是因為rpyc默認的調用等待時間只有30s,如果某些rpyc調用的等待時間超過30s就會報錯,解決方法很簡單,在rpyc包的protocol.py文件中找到mVY站長之家-易采站長站-Easck.Com
SYNC_REQUEST_TIMEOUT,改大即可。mVY站長之家-易采站長站-Easck.Com

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持易采站長站。mVY站長之家-易采站長站-Easck.Com

如有侵權,請聯系QQ:279390809 電話:15144810328

相關文章

色七七影院_香港三级台湾三级在线播放_男人放进女人阳道猛进猛出