Files
flomo-ai/mumu-pytest/__pycache__/conftest.cpython-313-pytest-8.3.4.pyc

85 lines
12 KiB
Plaintext
Raw Normal View History

<EFBFBD>
<00><><EFBFBD>i<EFBFBD><00><00><><00>SrSSKrSSKJs Jr SSKrSSKrSSK r
SSK r SSK r SSK r SSKrSSKJr SrSrSrSr\ R*R-\ R*R/\5S5rS rS
r\ R*R/\5r"S S 5r"S S5r\R>"SS9S5r \R>"SS9S5r!\R>"SS9S5r"g)u#
Mumu模拟器 pytest 测试框架
<EFBFBD>N)<01>Pathz4C:\Program Files\Netease\MuMu\nx_main\MuMuNxMain.exezMuMuNxMain.exez+C:\Program Files\Netease\MuMu\shell\adb.exez&http://your-server.com/app-release.apkz test_app.apkzcom.example.flomo_aizhttp://192.168.3.15/c<00>v<00>\rSrSrSrSrS\4SjrSrSr SSjr
S r S
r SS jr SS\4S jjrS rSrSrg)<14> MumuEmulator<6F>uMumu模拟器控制类c<00>\<00>[Ul[UlS[lS[lg)N<>T)<07>MUMU_PROCESS_NAME<4D> process_name<6D>
SCRIPT_DIR<EFBFBD>
script_dir<EFBFBD> pyautogui<75>PAUSE<53>FAILSAFE<46><01>selfs <20>DC:\Users\xiaji\AndroidStudioProjects\flomoai\mumu-pytest\conftest.py<70>__init__<5F>MumuEmulator.__init__s <00><00>-<2D><04><19>$<24><04><0F><1B> <09><0F>!<21> <09><1A><00>returnc<00><><00>[R"S/SSS9nURUR;$![a gf=f)u检查模拟器是否运行<E8BF90>tasklistT<74><02>capture_output<75>textF)<05>
subprocess<EFBFBD>runr
<00>stdout<75> Exception)r<00>results r<00>
is_running<EFBFBD>MumuEmulator.is_running#sI<00><00> <19><1F>^<5E>^<5E><1B> <0C>#<23><19><0E>F<EFBFBD>
<18>$<24>$<24><06> <0A> <0A>5<> 5<><35><18> <19><18> <19>s <00>/2<00>
?<03>?c<00><><00>UR5(d0[R"[5 [R
"S5 UR 5 g)u启动模拟器<E68B9F>N)r!r<00>Popen<65> MUMU_EXE_PATH<54>time<6D>sleep<65>bring_to_frontrs r<00>start<72>MumuEmulator.start/s4<00><00><13><EFBFBD><EFBFBD> <20> <20> <16> <1C> <1C>]<5D> +<2B> <10>J<EFBFBD>J<EFBFBD>q<EFBFBD>M<EFBFBD> <0C><1B><1B>rc<00>f<00>[R"S5nUHdnUR(dMUR5 UR 5 [
R "S5 [SUR35 g [S5 g![an[SU35 SnAgSnAff=f) u将模拟器窗口置顶<E7BDAE>MuMu<4D><00>?u已将窗口置顶: Tu未找到MuMu模拟器窗口Fu置顶窗口失败: N) <09>gw<67>getWindowsWithTitle<6C>title<6C>activate<74>restorer'r(<00>printr)r<00>windows<77>window<6F>es rr)<00>MumuEmulator.bring_to_front6s<><00><00> <19><18>,<2C>,<2C>V<EFBFBD>4<>G<EFBFBD>!<21><06><19><<3C><<3C><<3C><1A>O<EFBFBD>O<EFBFBD>%<25><1A>N<EFBFBD>N<EFBFBD>$<24><18>J<EFBFBD>J<EFBFBD>s<EFBFBD>O<EFBFBD><19>0<><16><1C><1C><0E>?<3F>@<40><1F> "<22> <12>0<> 1<><18><><18> <19> <11>(<28><11><03>,<2C> -<2D><18><> <19>s#<00>*B<00>AB<00> B<00>
B0<03>B+<03>+B0c<00><><00>[RRURUS35n[RR U5(d[ SU35 g[ R "5n[ R "5U-
U:a<>[R"XBS9nU(a;[R"U5n[R"U5 [ SU35 g[ R"S5 [ R "5U-
U:aM<>[ S U35 g![a
nSnANRSnAff=f)
u查找图片并点击<E782B9>.pngu图片不存在: F<><01>
confidenceu 点击了: TNru未找到图片: ) <0A>os<6F>path<74>joinr <00>existsr4r'r <00>locateOnScreen<65>center<65>clickrr() r<00>
image_namer<<00>timeout<75>
image_path<EFBFBD>
start_time<EFBFBD>locationrBr7s r<00>find_and_click<63>MumuEmulator.find_and_clickGs<><00><00><17>W<EFBFBD>W<EFBFBD>\<5C>\<5C>$<24>/<2F>/<2F>j<EFBFBD>\<5C><14>3F<33>G<>
<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>j<EFBFBD>)<29>)<29> <11>%<25>j<EFBFBD>\<5C>2<> 3<><18><19>Y<EFBFBD>Y<EFBFBD>[<5B>
<EFBFBD><12>i<EFBFBD>i<EFBFBD>k<EFBFBD>J<EFBFBD>&<26><17>0<> <15>$<24>3<>3<>J<EFBFBD>V<><08><1B>&<26>-<2D>-<2D>h<EFBFBD>7<>F<EFBFBD><1D>O<EFBFBD>O<EFBFBD>F<EFBFBD>+<2B><19>K<EFBFBD>
<EFBFBD>|<7C>4<>5<><1F> <1C> <11>J<EFBFBD>J<EFBFBD>q<EFBFBD>M<EFBFBD><13>i<EFBFBD>i<EFBFBD>k<EFBFBD>J<EFBFBD>&<26><17>0<> <0E>!<21>*<2A><1C>.<2E>/<2F><14><> <1D> <15><14><> <15>s<00>AD-<00>-
E<03><Ec<00>J<00>[R"USS9 [SU35 g)u 输入文本g<E69CAC><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?)<01>intervalu输入了文本: N)r <00>writer4)rrs r<00> type_text<78>MumuEmulator.type_text]s <00><00><11><0F><0F><04>s<EFBFBD>+<2B> <0A>!<21>$<24><16>(<28>)rc<00>F<00>[R"S5 [S5 g)u 按回车<E59B9E>enteru 按下回车N)r <00>pressr4rs r<00> press_enter<65>MumuEmulator.press_enterbs<00><00><11><0F><0F><07> <20> <0A>n<EFBFBD>rc<00>4<00>Sn[R"5n[R"5U-
U:adUR5(a"S5 SnU$[R"S5 [R"5U-
U:aMdU$)u等待模拟器启动完成Fr$T<>)r'r!r()rrE<00>boot_completedrGs r<00> wait_for_boot<6F>MumuEmulator.wait_for_bootgsu<00><00><1E><0E><19>Y<EFBFBD>Y<EFBFBD>[<5B>
<EFBFBD><12>i<EFBFBD>i<EFBFBD>k<EFBFBD>J<EFBFBD>&<26><17>0<><13><EFBFBD><EFBFBD> <20> <20><14>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A>!%<25><0E><15><1D><1D> <11>J<EFBFBD>J<EFBFBD>q<EFBFBD>M<EFBFBD> <13>i<EFBFBD>i<EFBFBD>k<EFBFBD>J<EFBFBD>&<26><17>0<> <1E>rc<00><><00>[RRURUS35n[RR U5(dg[
R "X2S9nUSL$![a gf=f)u检查图片是否存在r:Fr;N)r=r>r?r r@r rAr)rrDr<rFrHs r<00>check_image_exists<74>MumuEmulator.check_image_existsssi<00><00><17>W<EFBFBD>W<EFBFBD>\<5C>\<5C>$<24>/<2F>/<2F>j<EFBFBD>\<5C><14>3F<33>G<>
<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>j<EFBFBD>)<29>)<29><18> <19> <20>/<2F>/<2F>
<EFBFBD>R<>H<EFBFBD><1B>4<EFBFBD>'<27> '<27><><18> <19><18> <19>s<00>A,<00>,
A9<03>8A9c<00><00>UR5 [R"S5 /SQnUH<>nUS:Xa<>[S5H<>nUR S5(aT[R"S5 UR [ 5 [R"S5 UR5 M<>[R"S5 M<> [S5 M<>URUSS9 [R"S 5 M<> g
) u按顺序执行任务r$) <09>web<65> web_address<73>web_goon<6F> web_debug<75> web_debug_apk<70>web_debug_apk_download<61>web_debug_apk_open<65>web_debug_apk_install<6C>web_debug_apk_runr_<00>
rr.u-web_address 图片不存在跳过输入URL)rErVN)
r)r'r(<00>ranger[rN<00>WEB_URLrSr4rI)r<00>sequencerD<00>_s r<00> run_sequence<63>MumuEmulator.run_sequence~s<><00><00> <0C><1B><1B><1D> <0C>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A>

<EFBFBD><08>#<23>J<EFBFBD><19>]<5D>*<2A><1E>r<EFBFBD><19>A<EFBFBD><1B>.<2E>.<2E>}<7D>=<3D>=<3D><1C>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A><1C><0E><0E>w<EFBFBD>/<2F><1C>
<EFBFBD>
<EFBFBD>3<EFBFBD><0F><1C>(<28>(<28>*<2A><1D><18>J<EFBFBD>J<EFBFBD>q<EFBFBD>M<EFBFBD>#<23><1A>I<>J<><14>#<23>#<23>J<EFBFBD><02>#<23>;<3B><14>
<EFBFBD>
<EFBFBD>1<EFBFBD> <0A>#rc<00>n<00>[R"SSSUR/5 g![a gf=f)u关闭模拟器<E68B9F>taskkillz/Fz/IMN)rrr
rrs r<00>close<73>MumuEmulator.close<73>s4<00><00> <11> <16>N<EFBFBD>N<EFBFBD>J<EFBFBD><04>e<EFBFBD>T<EFBFBD>5F<35>5F<35>G<> H<><48><18> <11> <10> <11>s <00>$'<00>
4<03>4)r
r N)<><E79A99><EFBFBD><EFBFBD><EFBFBD>?<3F>)<01>x)rr)<12>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F>__doc__r<00>boolr!r*r)rIrNrSrXr[rlrp<00>__static_attributes__<5F>rrrrsK<00><00> <20>"<22>
<19>D<EFBFBD>
<19><1E><19>"<15>,*<2A>
<1E>
<1E> <19><04> <19><1E>@rrc<00>~<00>\rSrSrSrSrSrS\S\4Sjr S\S\4S jr
S\S
\4S jr S\S\4S jr S \S\4Sjr Srg)<12> AdbHelper<65><72>uADB命令辅助类c<00><00>[Ulg)N)<02>ADB_PATH<54>adb_pathrs rr<00>AdbHelper.__init__<5F>s <00><00> <20><04> rc<00><><00>UR/[U5-n[R"USSS9nURUR
4$)u执行ADB命令Tr)r<><00>listrrr<00>stderr)r<00>args<67>cmdr s r<00>exec_cmd<6D>AdbHelper.exec_cmd<6D>s;<00><00><13>}<7D>}<7D>o<EFBFBD><04>T<EFBFBD>
<EFBFBD>*<2A><03><1B><1E><1E><03>D<EFBFBD>t<EFBFBD>D<><06><15>}<7D>}<7D>f<EFBFBD>m<EFBFBD>m<EFBFBD>+<2B>+r<00>apk_pathrc<00>6<00>URSSU5up#SU;$)u 安装APK<50>installz-r<>Success<73>r<>)rr<>rr<>s r<00> install_apk<70>AdbHelper.install_apk<70>s!<00><00><1D><1D><1D>y<EFBFBD>$<24><08>A<><0E><06><18>F<EFBFBD>"<22>"r<00> package_namec<00>4<00>URSU5up#SU;$)u 卸载应用<E5BA94> uninstallr<6C>r<>)rr<>rr<>s r<00> uninstall_app<70>AdbHelper.uninstall_app<70>s<00><00><1D><1D><1D>{<7B>L<EFBFBD>A<><0E><06><18>F<EFBFBD>"<22>"r<00>activityc <00>8<00>URSSSSUSU35 g)u 启动应用<E5BA94>shell<6C>amr*z-n<>/Nr<4E>)rr<>r<>s r<00>
launch_app<EFBFBD>AdbHelper.launch_app<70>s!<00><00> <0C> <0A> <0A>g<EFBFBD>t<EFBFBD>W<EFBFBD>d<EFBFBD>|<7C>n<EFBFBD>A<EFBFBD>h<EFBFBD>Z<EFBFBD>4P<34>Qrc<00>8<00>URSSSSU5up#X;$)u检查应用是否已安装r<E8A385><00>pmr<6D><00>packagesr<73>)rr<>rrks r<00>is_app_installed<65>AdbHelper.is_app_installed<65>s#<00><00><18>M<EFBFBD>M<EFBFBD>'<27>4<EFBFBD><16><1A>\<5C>R<> <09><06><1B>%<25>%r<00> remote_path<74>
local_pathc<00>(<00>URSX5 g)u从模拟器拉取文件<E69687>pullNr<4E>)rr<>r<>s r<00> pull_file<6C>AdbHelper.pull_file<6C>s<00><00> <0C> <0A> <0A>f<EFBFBD>k<EFBFBD>6r)r<>N)rurvrwrxryrr<><00>strrzr<>r<>r<>r<>r<>r{r|rrr~r~<00>sq<00><00><1C>!<21>,<2C> #<23>C<EFBFBD>#<23>D<EFBFBD>#<23>
#<23>#<23>#<23>$<24>#<23>
R<01>s<EFBFBD>R<01>c<EFBFBD>R<01>&<26>S<EFBFBD>&<26>T<EFBFBD>&<26>
7<>S<EFBFBD>7<>c<EFBFBD>7rr~<00>session)<01>scopec#<00>t# <00>[5nUv<00> UR5(aUR5 gg7f)u模拟器fixtureN)rr!rp)<01>mumus r<00>emulatorr<72><00>s.<00><00><00> <18>><3E>D<EFBFBD>
<0E>J<EFBFBD> <0B><EFBFBD><EFBFBD><18><18> <0C>
<EFBFBD>
<EFBFBD> <0C><19>s<00>68c<00><00>[5$)z ADB fixture)r~r|rr<00>adbr<62><00>s <00><00> <15>;<3B>rc#<00><># <00>[RR[5(a[$[R
"[ SS9n[[S5nURSS9HnURU5 M SSS5 [v<00> [RR[5(a"[5 gg!,(df  NZ=f7f)u 下载APKT)<01>stream<61>wbi )<01>
chunk_sizeN) r=r>r@<00>LOCAL_APK_PATH<54>requests<74>get<65>APK_DOWNLOAD_URL<52>open<65> iter_contentrM<00>remove)<03>response<73>f<>chunks r<00> download_apkr<6B><00>s<><00><00><00>
<EFBFBD>w<EFBFBD>w<EFBFBD>~<7E>~<7E>n<EFBFBD>%<25>%<25><1D><1D><17>|<7C>|<7C>,<2C>T<EFBFBD>:<3A>H<EFBFBD> <0A>n<EFBFBD>d<EFBFBD> #<23>q<EFBFBD><1D>*<2A>*<2A>d<EFBFBD>*<2A>;<3B>E<EFBFBD> <0A>G<EFBFBD>G<EFBFBD>E<EFBFBD>N<EFBFBD><<3C>
$<24> <19><18>
<EFBFBD>w<EFBFBD>w<EFBFBD>~<7E>~<7E>n<EFBFBD>%<25>%<25>
<EFBFBD> <09> <09>.<2E>!<21>&<26>
$<24> #<23>s<00>AC'<01>(C<03>AC'<01>
C$<07> C')#ry<00>builtins<6E> @py_builtins<6E>_pytest.assertion.rewrite<74> assertion<6F>rewrite<74>
@pytest_ar<61>pytestr <00> pygetwindowr/r'r=rr<><00>pathlibrr&r r<>r<>r>r?<00>dirname<6D>__file__r<5F><00>INSTALLED_PACKAGE_NAMErir rr~<00>fixturer<65>r<>r<>r|rr<00><module>r<>s<><00><01><04><01><00> <0A><10><18> <0B> <09><11><0F><18>H<01> <0A>$<24><11> 9<><08>;<3B><10><13><17><17><1C><1C>b<EFBFBD>g<EFBFBD>g<EFBFBD>o<EFBFBD>o<EFBFBD>h<EFBFBD>7<><1E>H<><0E>/<2F><16>
<20><07> <0F>W<EFBFBD>W<EFBFBD>_<EFBFBD>_<EFBFBD>X<EFBFBD> &<26>
<EFBFBD>I<11>I<11>X!7<>!7<>H<08><1E><1E>i<EFBFBD> <20><15>!<21><15><08><1E><1E>i<EFBFBD> <20><17>!<21><17>
<08><1E><1E>i<EFBFBD> <20>"<22>!<21>"r