├── README.md ├── performancetest ├── __init__.py ├── core │ ├── __init__.py │ ├── base │ │ ├── __init__.py │ │ ├── actuator.py │ │ └── monitor.py │ ├── command.py │ ├── cpu.py │ ├── device.py │ ├── devicebattery.py │ ├── fps.py │ ├── global_data.py │ ├── gpu.py │ ├── iosprefsib.py │ ├── logcat.py │ ├── memory.py │ ├── sib_server.py │ ├── snapshot.py │ └── task_handle.py ├── sdk │ ├── adbsdk.zip │ ├── adbsdkmac.zip │ ├── sibsdk.zip │ └── sibsdkmac.zip ├── test │ ├── __init__.py │ └── all_property_test.py ├── test_result │ ├── 127.0.0.1 │ │ └── 1680589434 │ │ │ ├── cpu.csv │ │ │ ├── devicebattery.csv │ │ │ ├── fps.csv │ │ │ ├── gpu.csv │ │ │ ├── logcat.txt │ │ │ ├── memory.csv │ │ │ └── picture_log │ │ │ ├── 1680589437252.jpg │ │ │ ├── 1680589440650.jpg │ │ │ ├── 1680589441661.jpg │ │ │ ├── 1680589442668.jpg │ │ │ ├── 1680589443675.jpg │ │ │ ├── 1680589444690.jpg │ │ │ ├── 1680589445696.jpg │ │ │ ├── 1680589446704.jpg │ │ │ ├── 1680589447717.jpg │ │ │ ├── 1680589448734.jpg │ │ │ ├── 1680589449744.jpg │ │ │ ├── 1680589450754.jpg │ │ │ ├── 1680589451769.jpg │ │ │ ├── 1680589452775.jpg │ │ │ ├── 1680589453781.jpg │ │ │ ├── 1680589454785.jpg │ │ │ ├── 1680589455799.jpg │ │ │ ├── 1680589456803.jpg │ │ │ ├── 1680589457811.jpg │ │ │ ├── 1680589458814.jpg │ │ │ ├── 1680589459817.jpg │ │ │ ├── 1680589460822.jpg │ │ │ ├── 1680589461829.jpg │ │ │ ├── 1680589462839.jpg │ │ │ ├── 1680589463850.jpg │ │ │ ├── 1680589464858.jpg │ │ │ ├── 1680589465865.jpg │ │ │ ├── 1680589466873.jpg │ │ │ ├── 1680589467879.jpg │ │ │ ├── 1680589468893.jpg │ │ │ ├── 1680589469897.jpg │ │ │ ├── 1680589470905.jpg │ │ │ ├── 1680589471912.jpg │ │ │ ├── 1680589472921.jpg │ │ │ ├── 1680589473936.jpg │ │ │ ├── 1680589474943.jpg │ │ │ ├── 1680589475951.jpg │ │ │ ├── 1680589476957.jpg │ │ │ ├── 1680589477963.jpg │ │ │ ├── 1680589478971.jpg │ │ │ ├── 1680589479972.jpg │ │ │ ├── 1680589480981.jpg │ │ │ ├── 1680589481987.jpg │ │ │ ├── 1680589482999.jpg │ │ │ ├── 1680589484007.jpg │ │ │ ├── 1680589485018.jpg │ │ │ ├── 1680589486022.jpg │ │ │ ├── 1680589487026.jpg │ │ │ ├── 1680589488041.jpg │ │ │ ├── 1680589489049.jpg │ │ │ ├── 1680589490062.jpg │ │ │ ├── 1680589491067.jpg │ │ │ ├── 1680589492073.jpg │ │ │ ├── 1680589493078.jpg │ │ │ ├── 1680589494091.jpg │ │ │ ├── 1680589495102.jpg │ │ │ ├── 1680589496118.jpg │ │ │ ├── 1680589497123.jpg │ │ │ ├── 1680589498131.jpg │ │ │ ├── 1680589499142.jpg │ │ │ ├── 1680589500145.jpg │ │ │ ├── 1680589501154.jpg │ │ │ ├── 1680589502159.jpg │ │ │ ├── 1680589503177.jpg │ │ │ ├── 1680589504188.jpg │ │ │ ├── 1680589505198.jpg │ │ │ ├── 1680589506207.jpg │ │ │ ├── 1680589507217.jpg │ │ │ ├── 1680589508233.jpg │ │ │ ├── 1680589509248.jpg │ │ │ ├── 1680589510264.jpg │ │ │ ├── 1680589511279.jpg │ │ │ ├── 1680589512280.jpg │ │ │ ├── 1680589513296.jpg │ │ │ ├── 1680589514306.jpg │ │ │ ├── 1680589515310.jpg │ │ │ ├── 1680589516320.jpg │ │ │ ├── 1680589517328.jpg │ │ │ ├── 1680589518332.jpg │ │ │ ├── 1680589519342.jpg │ │ │ ├── 1680589520346.jpg │ │ │ ├── 1680589521358.jpg │ │ │ ├── 1680589522373.jpg │ │ │ ├── 1680589523375.jpg │ │ │ ├── 1680589524382.jpg │ │ │ ├── 1680589525392.jpg │ │ │ ├── 1680589526406.jpg │ │ │ ├── 1680589527408.jpg │ │ │ ├── 1680589528421.jpg │ │ │ ├── 1680589529441.jpg │ │ │ ├── 1680589530444.jpg │ │ │ ├── 1680589531456.jpg │ │ │ ├── 1680589532474.jpg │ │ │ ├── 1680589533483.jpg │ │ │ ├── 1680589534496.jpg │ │ │ ├── 1680589535513.jpg │ │ │ ├── 1680589536516.jpg │ │ │ ├── 1680589537529.jpg │ │ │ ├── 1680589538535.jpg │ │ │ ├── 1680589539537.jpg │ │ │ ├── 1680589540546.jpg │ │ │ ├── 1680589541561.jpg │ │ │ ├── 1680589542577.jpg │ │ │ ├── 1680589543579.jpg │ │ │ ├── 1680589544588.jpg │ │ │ ├── 1680589545602.jpg │ │ │ ├── 1680589546608.jpg │ │ │ ├── 1680589547618.jpg │ │ │ ├── 1680589548626.jpg │ │ │ ├── 1680589549640.jpg │ │ │ ├── 1680589550650.jpg │ │ │ ├── 1680589551653.jpg │ │ │ ├── 1680589552663.jpg │ │ │ ├── 1680589553670.jpg │ │ │ ├── 1680589554674.jpg │ │ │ ├── 1680589555688.jpg │ │ │ ├── 1680589556698.jpg │ │ │ ├── 1680589557704.jpg │ │ │ ├── 1680589558707.jpg │ │ │ ├── 1680589559722.jpg │ │ │ ├── 1680589560732.jpg │ │ │ ├── 1680589561746.jpg │ │ │ ├── 1680589562753.jpg │ │ │ ├── 1680589563757.jpg │ │ │ ├── 1680589564765.jpg │ │ │ ├── 1680589565772.jpg │ │ │ ├── 1680589566782.jpg │ │ │ ├── 1680589567794.jpg │ │ │ ├── 1680589568806.jpg │ │ │ ├── 1680589569811.jpg │ │ │ ├── 1680589570816.jpg │ │ │ ├── 1680589571820.jpg │ │ │ ├── 1680589572832.jpg │ │ │ ├── 1680589573844.jpg │ │ │ ├── 1680589574854.jpg │ │ │ ├── 1680589575866.jpg │ │ │ ├── 1680589576870.jpg │ │ │ ├── 1680589577871.jpg │ │ │ ├── 1680589578875.jpg │ │ │ ├── 1680589579886.jpg │ │ │ ├── 1680589580895.jpg │ │ │ ├── 1680589581898.jpg │ │ │ ├── 1680589582904.jpg │ │ │ ├── 1680589583916.jpg │ │ │ ├── 1680589584920.jpg │ │ │ ├── 1680589585937.jpg │ │ │ ├── 1680589586946.jpg │ │ │ ├── 1680589587953.jpg │ │ │ ├── 1680589588960.jpg │ │ │ ├── 1680589589970.jpg │ │ │ ├── 1680589590981.jpg │ │ │ ├── 1680589591992.jpg │ │ │ ├── 1680589592997.jpg │ │ │ ├── 1680589594008.jpg │ │ │ ├── 1680589595024.jpg │ │ │ ├── 1680589596028.jpg │ │ │ ├── 1680589597035.jpg │ │ │ ├── 1680589598039.jpg │ │ │ ├── 1680589599044.jpg │ │ │ ├── 1680589600054.jpg │ │ │ ├── 1680589601062.jpg │ │ │ ├── 1680589602073.jpg │ │ │ ├── 1680589603075.jpg │ │ │ ├── 1680589604085.jpg │ │ │ ├── 1680589605088.jpg │ │ │ ├── 1680589606105.jpg │ │ │ ├── 1680589607109.jpg │ │ │ ├── 1680589608112.jpg │ │ │ ├── 1680589609116.jpg │ │ │ ├── 1680589610124.jpg │ │ │ ├── 1680589611140.jpg │ │ │ ├── 1680589612145.jpg │ │ │ ├── 1680589613151.jpg │ │ │ ├── 1680589614154.jpg │ │ │ ├── 1680589615168.jpg │ │ │ ├── 1680589616183.jpg │ │ │ ├── 1680589617201.jpg │ │ │ ├── 1680589618203.jpg │ │ │ ├── 1680589619207.jpg │ │ │ ├── 1680589620214.jpg │ │ │ ├── 1680589621217.jpg │ │ │ ├── 1680589622232.jpg │ │ │ ├── 1680589623238.jpg │ │ │ ├── 1680589624248.jpg │ │ │ ├── 1680589625256.jpg │ │ │ ├── 1680589626262.jpg │ │ │ ├── 1680589627278.jpg │ │ │ ├── 1680589628280.jpg │ │ │ ├── 1680589629296.jpg │ │ │ ├── 1680589630300.jpg │ │ │ ├── 1680589631303.jpg │ │ │ ├── 1680589632309.jpg │ │ │ ├── 1680589633322.jpg │ │ │ ├── 1680589634329.jpg │ │ │ ├── 1680589635346.jpg │ │ │ ├── 1680589636357.jpg │ │ │ ├── 1680589637361.jpg │ │ │ ├── 1680589638365.jpg │ │ │ ├── 1680589639374.jpg │ │ │ ├── 1680589640385.jpg │ │ │ ├── 1680589641393.jpg │ │ │ ├── 1680589642395.jpg │ │ │ ├── 1680589643406.jpg │ │ │ ├── 1680589644418.jpg │ │ │ ├── 1680589645424.jpg │ │ │ ├── 1680589646436.jpg │ │ │ ├── 1680589647446.jpg │ │ │ ├── 1680589648462.jpg │ │ │ ├── 1680589649474.jpg │ │ │ ├── 1680589650481.jpg │ │ │ ├── 1680589651487.jpg │ │ │ ├── 1680589652501.jpg │ │ │ ├── 1680589653505.jpg │ │ │ ├── 1680589654509.jpg │ │ │ ├── 1680589655512.jpg │ │ │ ├── 1680589656518.jpg │ │ │ ├── 1680589657524.jpg │ │ │ ├── 1680589658530.jpg │ │ │ ├── 1680589659537.jpg │ │ │ ├── 1680589660546.jpg │ │ │ ├── 1680589661562.jpg │ │ │ ├── 1680589662579.jpg │ │ │ ├── 1680589663592.jpg │ │ │ ├── 1680589664602.jpg │ │ │ ├── 1680589665608.jpg │ │ │ ├── 1680589666621.jpg │ │ │ ├── 1680589667634.jpg │ │ │ ├── 1680589668637.jpg │ │ │ ├── 1680589669643.jpg │ │ │ ├── 1680589670657.jpg │ │ │ ├── 1680589671670.jpg │ │ │ ├── 1680589672677.jpg │ │ │ ├── 1680589673680.jpg │ │ │ ├── 1680589674689.jpg │ │ │ ├── 1680589675700.jpg │ │ │ ├── 1680589676709.jpg │ │ │ ├── 1680589677718.jpg │ │ │ ├── 1680589678725.jpg │ │ │ ├── 1680589679741.jpg │ │ │ ├── 1680589680747.jpg │ │ │ ├── 1680589681754.jpg │ │ │ ├── 1680589682768.jpg │ │ │ ├── 1680589683770.jpg │ │ │ ├── 1680589684780.jpg │ │ │ ├── 1680589685788.jpg │ │ │ ├── 1680589686792.jpg │ │ │ ├── 1680589687804.jpg │ │ │ ├── 1680589688819.jpg │ │ │ ├── 1680589689821.jpg │ │ │ ├── 1680589690837.jpg │ │ │ ├── 1680589691843.jpg │ │ │ ├── 1680589692853.jpg │ │ │ ├── 1680589693866.jpg │ │ │ ├── 1680589694876.jpg │ │ │ ├── 1680589695890.jpg │ │ │ ├── 1680589696900.jpg │ │ │ ├── 1680589697916.jpg │ │ │ ├── 1680589698921.jpg │ │ │ ├── 1680589699927.jpg │ │ │ ├── 1680589700939.jpg │ │ │ ├── 1680589701949.jpg │ │ │ ├── 1680589702952.jpg │ │ │ ├── 1680589703961.jpg │ │ │ ├── 1680589704972.jpg │ │ │ ├── 1680589705982.jpg │ │ │ ├── 1680589706990.jpg │ │ │ ├── 1680589707999.jpg │ │ │ ├── 1680589709016.jpg │ │ │ ├── 1680589710033.jpg │ │ │ ├── 1680589711049.jpg │ │ │ ├── 1680589712055.jpg │ │ │ ├── 1680589713060.jpg │ │ │ ├── 1680589714075.jpg │ │ │ ├── 1680589715089.jpg │ │ │ ├── 1680589716107.jpg │ │ │ ├── 1680589717114.jpg │ │ │ ├── 1680589718122.jpg │ │ │ ├── 1680589719131.jpg │ │ │ ├── 1680589720149.jpg │ │ │ ├── 1680589721171.jpg │ │ │ ├── 1680589722185.jpg │ │ │ ├── 1680589723202.jpg │ │ │ ├── 1680589724204.jpg │ │ │ ├── 1680589725217.jpg │ │ │ ├── 1680589726229.jpg │ │ │ ├── 1680589727234.jpg │ │ │ ├── 1680589728246.jpg │ │ │ ├── 1680589729261.jpg │ │ │ ├── 1680589730263.jpg │ │ │ ├── 1680589731272.jpg │ │ │ ├── 1680589732275.jpg │ │ │ ├── 1680589733289.jpg │ │ │ ├── 1680589734290.jpg │ │ │ ├── 1680589735306.jpg │ │ │ ├── 1680589736316.jpg │ │ │ ├── 1680589737331.jpg │ │ │ ├── 1680589738339.jpg │ │ │ ├── 1680589739341.jpg │ │ │ ├── 1680589740357.jpg │ │ │ ├── 1680589741374.jpg │ │ │ ├── 1680589742385.jpg │ │ │ ├── 1680589743401.jpg │ │ │ ├── 1680589744407.jpg │ │ │ ├── 1680589745410.jpg │ │ │ ├── 1680589746426.jpg │ │ │ ├── 1680589747440.jpg │ │ │ ├── 1680589748455.jpg │ │ │ ├── 1680589749470.jpg │ │ │ ├── 1680589750484.jpg │ │ │ ├── 1680589751489.jpg │ │ │ ├── 1680589752499.jpg │ │ │ ├── 1680589753501.jpg │ │ │ ├── 1680589754509.jpg │ │ │ ├── 1680589755516.jpg │ │ │ ├── 1680589756521.jpg │ │ │ ├── 1680589757532.jpg │ │ │ ├── 1680589758535.jpg │ │ │ ├── 1680589759547.jpg │ │ │ ├── 1680589760562.jpg │ │ │ ├── 1680589761565.jpg │ │ │ ├── 1680589762580.jpg │ │ │ ├── 1680589763589.jpg │ │ │ ├── 1680589764593.jpg │ │ │ ├── 1680589765596.jpg │ │ │ ├── 1680589766610.jpg │ │ │ ├── 1680589767624.jpg │ │ │ ├── 1680589768629.jpg │ │ │ ├── 1680589769643.jpg │ │ │ ├── 1680589770649.jpg │ │ │ ├── 1680589771659.jpg │ │ │ ├── 1680589772675.jpg │ │ │ ├── 1680589773677.jpg │ │ │ ├── 1680589774685.jpg │ │ │ ├── 1680589775700.jpg │ │ │ ├── 1680589776705.jpg │ │ │ ├── 1680589777717.jpg │ │ │ ├── 1680589778726.jpg │ │ │ ├── 1680589779740.jpg │ │ │ ├── 1680589780752.jpg │ │ │ ├── 1680589781765.jpg │ │ │ ├── 1680589782774.jpg │ │ │ ├── 1680589783786.jpg │ │ │ ├── 1680589784790.jpg │ │ │ ├── 1680589785796.jpg │ │ │ ├── 1680589786807.jpg │ │ │ ├── 1680589787819.jpg │ │ │ ├── 1680589788835.jpg │ │ │ ├── 1680589789839.jpg │ │ │ ├── 1680589790847.jpg │ │ │ ├── 1680589791851.jpg │ │ │ └── 1680589792863.jpg │ ├── index.html │ └── iphone.png └── web │ ├── __init__.py │ ├── dao.py │ ├── entity.py │ ├── main.py │ └── util.py ├── start.bat ├── start.sh └── task.sqlite /README.md: -------------------------------------------------------------------------------- 1 |

客户端性能测试平台

2 |

地址:http://112.126.75.188/ 此地址仅作演示,使用请clone并start.sh/start.bat启动

3 | 13 | v1.1.0 目前平台展示: 14 | 15 | 16 | ![ppp1](https://user-images.githubusercontent.com/56209295/230256398-3c238828-74eb-482d-a4ec-c6827c600246.png) 17 | 18 | ![ppp2](https://user-images.githubusercontent.com/56209295/230256431-386ac192-8dcc-40b3-b114-3f0a6652b1e6.png) 19 | 20 | 21 | ![ppp3](https://user-images.githubusercontent.com/56209295/230256454-4af6d592-c4e1-43f8-b507-c46b3fdf2924.png) 22 | 23 | 24 | ![ppp4](https://user-images.githubusercontent.com/56209295/230256463-8193f28f-2b25-4855-8a77-599b67d868bb.png) 25 | 26 | v1.1.0 线上地址: 27 | http://112.126.75.188/ 28 | -------------------------------------------------------------------------------- /performancetest/__init__.py: -------------------------------------------------------------------------------- 1 | # _*_ coding: utf-8 _*_ 2 | import sys 3 | 4 | sys.path.insert(0, ".") 5 | -------------------------------------------------------------------------------- /performancetest/core/__init__.py: -------------------------------------------------------------------------------- 1 | # _*_ coding: utf-8 _*_ 2 | -------------------------------------------------------------------------------- /performancetest/core/base/__init__.py: -------------------------------------------------------------------------------- 1 | # _*_ coding: utf-8 _*_ 2 | -------------------------------------------------------------------------------- /performancetest/core/base/actuator.py: -------------------------------------------------------------------------------- 1 | from abc import ABCMeta, abstractmethod 2 | from builtins import * 3 | 4 | 5 | class Actuator(metaclass=ABCMeta): 6 | def __init__(self): 7 | super(Actuator, self).__init__() 8 | 9 | @abstractmethod 10 | def start(self): 11 | pass 12 | 13 | @abstractmethod 14 | def stop(self): 15 | pass 16 | -------------------------------------------------------------------------------- /performancetest/core/base/monitor.py: -------------------------------------------------------------------------------- 1 | from abc import ABCMeta, abstractmethod 2 | from builtins import * 3 | from threading import Thread 4 | 5 | 6 | class Monitor(Thread, metaclass=ABCMeta): 7 | def __init__(self): 8 | super(Monitor, self).__init__() 9 | 10 | @abstractmethod 11 | def start(self): 12 | pass 13 | 14 | @abstractmethod 15 | def stop(self): 16 | pass 17 | -------------------------------------------------------------------------------- /performancetest/core/command.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | sys.path.append("../") 4 | import subprocess 5 | from builtins import * 6 | 7 | from performancetest.core.global_data import logger 8 | 9 | 10 | def split_cmd(cmds): 11 | return cmds.split() if isinstance(cmds, str) else list(cmds) 12 | 13 | 14 | def proc_communicate_timeout(proc, timeout): 15 | try: 16 | stdout, stderr = proc.communicate(timeout=timeout) 17 | except subprocess.TimeoutExpired as e: 18 | proc.kill() 19 | stdout, stderr = proc.communicate() 20 | exp = Exception("Command {cmd} timed out after {timeout} seconds: stdout['{stdout}'], " 21 | "stderr['{stderr}']".format(cmd=proc.args, timeout=e.timeout, 22 | stdout=stdout, stderr=stderr)) 23 | raise (exp) 24 | 25 | return stdout, stderr 26 | 27 | 28 | class ADB(object): 29 | def __init__(self, serialno=None, adb_path=None, server_addr=None): 30 | self.serialno = serialno 31 | self.adb_path = adb_path or "adb" 32 | self._set_cmd_options(server_addr) 33 | self.server_addr = server_addr 34 | 35 | def _set_cmd_options(self, server_addr=None): 36 | logger.info(server_addr) 37 | self.host = server_addr[0] if server_addr[0] else "127.0.0.1" 38 | self.port = server_addr[1] if server_addr[1] else 5037 39 | self.cmd_options = [self.adb_path] 40 | if self.host: 41 | self.cmd_options += ['-H', self.host] 42 | if self.port: 43 | self.cmd_options += ['-P', str(self.port)] 44 | 45 | def start_shell(self, cmds): 46 | """ 47 | Handle `adb shell` c(s) 48 | 49 | Args: 50 | cmds: adb shell command(s) 51 | 52 | Returns: 53 | None 54 | 55 | """ 56 | cmds = ['shell'] + split_cmd(cmds) 57 | return self.start_cmd(cmds) 58 | 59 | def start_cmd(self, cmds, device=True, only_args=False): 60 | """ 61 | Start a subprocess with adb command(s) 62 | 63 | Args: 64 | cmds: command(s) to be run 65 | device: if True, the device serial number must be specified by `-s serialno` argument 66 | 67 | Raises: 68 | RuntimeError: if `device` is True and serialno is not specified 69 | 70 | Returns: 71 | a subprocess 72 | 73 | """ 74 | if device: 75 | if not self.serialno: 76 | raise RuntimeError("please set serialno first") 77 | cmd_options = self.cmd_options + ['-s', self.serialno] 78 | else: 79 | cmd_options = self.cmd_options 80 | 81 | cmds = cmd_options + split_cmd(cmds) 82 | logger.debug(cmds) 83 | logger.debug(" ".join(cmds)) 84 | if only_args: 85 | return cmds 86 | proc = subprocess.Popen( 87 | cmds, 88 | stdin=subprocess.PIPE, 89 | stdout=subprocess.PIPE, 90 | stderr=subprocess.PIPE, 91 | creationflags=0 92 | ) 93 | return proc 94 | 95 | def raw_shell(self, cmds, ensure_unicode=True): 96 | cmds = ['shell'] + split_cmd(cmds) 97 | logger.info("shell执行命令:{}".format(str(cmds))) 98 | out = self.cmd(cmds, ensure_unicode=False) 99 | return out 100 | 101 | def cmd(self, cmds, device=True, ensure_unicode=True, timeout=None): 102 | proc = self.start_cmd(cmds, device) 103 | if timeout: 104 | stdout, stderr = proc_communicate_timeout(proc, timeout) 105 | else: 106 | stdout, stderr = proc.communicate() 107 | logger.error(f"err msg {stderr}") 108 | return stdout 109 | 110 | def killpid(self, pid): 111 | logger.info("进入killpid函数") 112 | self.raw_shell("kill {}".format(pid)) 113 | logger.info("killpid函数执行结束") 114 | 115 | 116 | # class Tidevice(): 117 | # def __init__(self, serialno=None, tidevice_path=None, device_addr=None): 118 | # self.serialno = serialno 119 | # self.tidevice_path = tidevice_path or "tidevice" 120 | # self._set_cmd_options() 121 | # self.device_addr = device_addr 122 | # self.mac_ssh = None 123 | # if platform.system() != "Darwin": 124 | # # 建立ssh连接 125 | # trans = paramiko.Transport((IOSHOST, IOSPORT)) 126 | # trans.connect(username=IOSUSERNAME, password=IOSPASSWORD) 127 | # # 将sshclient的对象的transport指定为以上的trans 128 | # ssh = paramiko.SSHClient() 129 | # ssh._transport = trans 130 | # self.mac_ssh = ssh 131 | # # # 执行命令,和传统方法一样 132 | # # stdin, stdout, stderr = ssh.exec_command(IOSPYTHON + " -m tidevice") 133 | # # print(stdout.read().decode()) 134 | # # print(stderr.read().decode()) 135 | # 136 | # def _set_cmd_options(self): 137 | # if len(self.tidevice_path.split()) > 2: 138 | # self.cmd_options = self.tidevice_path.split() 139 | # else: 140 | # self.cmd_options = [self.tidevice_path] 141 | # 142 | # def start_cmd(self, cmds, device=True, only_args=False): 143 | # """ 144 | # Start a subprocess with adb command(s) 145 | # 146 | # Args: 147 | # cmds: command(s) to be run 148 | # device: if True, the device serial number must be specified by `-s serialno` argument 149 | # 150 | # Raises: 151 | # RuntimeError: if `device` is True and serialno is not specified 152 | # 153 | # Returns: 154 | # a subprocess 155 | # 156 | # """ 157 | # if device: 158 | # if not self.serialno: 159 | # raise RuntimeError("please set serialno first") 160 | # cmd_options = self.cmd_options + ['-u', self.serialno] 161 | # else: 162 | # cmd_options = self.cmd_options 163 | # 164 | # cmds = cmd_options + split_cmd(cmds) 165 | # logger.debug("ios cmds:{0}".format(cmds)) 166 | # logger.debug(" ".join(cmds)) 167 | # if only_args: 168 | # return cmds 169 | # proc = subprocess.Popen( 170 | # cmds, 171 | # stdin=subprocess.PIPE, 172 | # stdout=subprocess.PIPE, 173 | # stderr=subprocess.PIPE, 174 | # creationflags=0 175 | # ) 176 | # return proc 177 | # 178 | # def raw_shell(self, cmds, ensure_unicode=True): 179 | # cmds = split_cmd(cmds) 180 | # out = self.cmd(cmds, ensure_unicode=False) 181 | # return out 182 | # 183 | # def cmd(self, cmds, device=True, ensure_unicode=True, timeout=None, is_block=True): 184 | # if platform.system() != "Darwin": 185 | # res_cmd = self.start_cmd(cmds, device, only_args=True) 186 | # res_cmd = " ".join(res_cmd) 187 | # logger.info("!ios-cmd: " + res_cmd) 188 | # if timeout: 189 | # stdin, stdout, stderr = self.mac_ssh.exec_command(res_cmd, timeout=timeout) 190 | # else: 191 | # stdin, stdout, stderr = self.mac_ssh.exec_command(res_cmd) 192 | # if is_block: 193 | # logger.error(f"ios err msg {stderr.read()}") 194 | # return stdout.read() 195 | # else: 196 | # return stdout 197 | # else: 198 | # proc = self.start_cmd(cmds, device) 199 | # if timeout: 200 | # stdout, stderr = proc_communicate_timeout(proc, timeout) 201 | # else: 202 | # stdout, stderr = proc.communicate() 203 | # logger.error(f"err msg {stderr}") 204 | # return stdout 205 | # 206 | # def killpid(self, pid): 207 | # self.raw_shell("kill {}".format(pid)) 208 | # 209 | # def __del__(self): 210 | # try: 211 | # logging.info("start close macssh") 212 | # self.mac_ssh.close() 213 | # except Exception as e: 214 | # logger.error(e) 215 | 216 | 217 | if __name__ == '__main__': 218 | # device = Tidevice(serialno="00008110-0002398A36B8801E", device_addr="http://10.130.131.82:20020?mjpeg_port=20019", 219 | # tidevice_path="/Users/pirate/opt/anaconda3/bin/python -m tidevice") 220 | # stdout = device.cmd("applist") 221 | # print("sdfs", stdout.decode()) 222 | pass 223 | -------------------------------------------------------------------------------- /performancetest/core/cpu.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | import sys 3 | 4 | sys.path.append("../") 5 | import csv 6 | import os 7 | import threading 8 | import time 9 | import traceback 10 | from builtins import * 11 | 12 | from performancetest.core.base.monitor import Monitor 13 | from performancetest.core.global_data import GlobalData as G, logger 14 | 15 | 16 | class ParseCpuinfo(object): 17 | def __init__(self, package, cpuinfo, sdkversion=None): 18 | self.cpuinfo = cpuinfo 19 | self.package = package 20 | self.sdkversion = sdkversion 21 | self.cpur_rate = self.get_cpu_rate() 22 | 23 | def get_cpu_rate(self): 24 | # logger.info("top获取到的原始信息是{}".format(self.cpuinfo)) 25 | for pidinfo in self.cpuinfo.split(os.linesep): 26 | if self.package in pidinfo: 27 | pidinfo = pidinfo.split() 28 | if pidinfo[-1] == self.package: 29 | return pidinfo[4].replace("%", '') 30 | return '' 31 | 32 | 33 | class CpuMonitor(Monitor): 34 | def __init__(self, save_file, test_time=-1, interval=1): 35 | super().__init__() 36 | self.save_file = save_file 37 | self.test_time = test_time 38 | self.interval = interval 39 | 40 | def get_cpuinfo(self): 41 | if G.device.sdkversion >= 25: 42 | cpu_info = G.device.adb.raw_shell("top -n 1 -p {} -o %CPU -b -q".format(G.device.package_pid)).decode() 43 | cpu_info = cpu_info.strip() 44 | else: 45 | cpu_info = G.device.adb.raw_shell("top -n 1".format(G.device.package_pid)).decode() 46 | cpu_info = ParseCpuinfo(G.device.package, cpu_info, G.device.sdkversion).cpur_rate 47 | logger.info("获取到的cpu信息是:{}".format(cpu_info)) 48 | return cpu_info 49 | 50 | def start(self): 51 | super(Monitor, self).start() 52 | 53 | # 结束任务 54 | def stop(self): 55 | G.stop_event.clear() 56 | 57 | # 暂停任务 58 | def suspend(self): 59 | G.suspend_event.clear() 60 | 61 | def run(self): 62 | ''' 63 | 按照指定频率,循环搜集cpu的信息 64 | :return: 65 | ''' 66 | cpu_title = ["timestamp", "cpu%"] 67 | cpu_file = self.save_file 68 | with open(cpu_file, 'w+') as df: 69 | csv.writer(df, lineterminator='\n').writerow(cpu_title) 70 | G.stop_event.set() # 启动 71 | G.suspend_event.set() # 启动 72 | while G.stop_event.is_set(): # 停止了循环会停止 73 | G.suspend_event.wait() # 暂停时会暂停在这里 74 | cpu_list = [] 75 | try: 76 | logger.debug("---------------开始获取cpu信息, into _collect_package_cpu_thread loop thread is : " + str( 77 | threading.current_thread().name)) 78 | before = time.time() 79 | cpu_list.append(before) 80 | # 为了cpu值的准确性,将采集的时间间隔放在top命令中了 81 | cpu_info = self.get_cpuinfo() 82 | cpu_list.append(cpu_info) 83 | after = time.time() 84 | time_consume = after - before 85 | logger.debug( 86 | "============== time consume for cpu info : {0}, value {1}".format(time_consume, cpu_info)) 87 | if cpu_info == None or cpu_info == '' or float(cpu_info) == 0: 88 | logger.error("can't get cpu info") 89 | G.device.get_pid() 90 | logger.info("重新获取pid,重启logcat") 91 | G.logcat.restart() 92 | # 取消获取不到跳过,默认给0 93 | cpu_list[-1] = 0 94 | with open(cpu_file, 'a+', encoding="utf-8") as df: 95 | csv.writer(df, lineterminator='\n').writerow(cpu_list) 96 | del cpu_list[:] 97 | delta_inter = self.interval - time_consume 98 | if delta_inter > 0: 99 | time.sleep(delta_inter) 100 | except Exception as e: 101 | logger.error("an exception hanpend in cpu thread , reason unkown!, e:") 102 | traceback.print_exc() 103 | G.device.get_pid() 104 | logger.debug("cpu stop event is set or timeout") 105 | 106 | 107 | if __name__ == "__main__": 108 | from device import AndroidDevice 109 | 110 | G.device = AndroidDevice(serialno="emulator-5554", server_addr=["localhost", "5037"], 111 | package="com.road7.ddtdmxandroid.ld", save_dir="localhost") 112 | G.device.start_app() 113 | cpu = CpuMonitor("./cpu.txt") 114 | cpu.start() 115 | time.sleep(15) 116 | cpu.stop() 117 | -------------------------------------------------------------------------------- /performancetest/core/device.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | sys.path.append("../") 4 | import logging 5 | import os 6 | import threading 7 | from builtins import * 8 | 9 | from func_timeout import func_set_timeout 10 | 11 | from performancetest.core.command import ADB 12 | 13 | # , Tidevice 14 | 15 | logger = logging.getLogger(__file__) 16 | logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(module)s - %(message)s') 17 | import subprocess 18 | 19 | 20 | class LogCatCollect(threading.Thread): 21 | def __init__(self, device): 22 | super.__init__(daemon=True) 23 | self.device = device 24 | 25 | def run(self): 26 | pid = self.device.get_pid() 27 | 28 | 29 | class AndroidDevice(object): 30 | def __init__(self, serialno, server_addr, package, save_dir): 31 | self.adb = ADB(serialno=serialno, server_addr=server_addr) 32 | self.serialno = serialno 33 | self.server_addr = server_addr 34 | self.package_pid = '' 35 | self.package = package 36 | self.save_dir = save_dir 37 | self.collect_logcat = threading.Thread(target=self._collect_logcat) 38 | self.sdkversion = self.get_sdkversion() 39 | 40 | def get_sdkversion(self): 41 | sdkversion = self.adb.raw_shell("getprop ro.build.version.sdk") 42 | logger.info("获取到的sdk版本号是{}".format(sdkversion)) 43 | sdkversion = sdkversion.decode().strip() 44 | if sdkversion: 45 | return int(sdkversion) 46 | else: 47 | # 没有获取到sdkverison默认返回25 48 | return 25 49 | 50 | def get_front_app(self): 51 | lines: str = self.adb.raw_shell("dumpsys activity top | grep ACTIVITY").decode() 52 | logger.info("获取到的activty是{0}".format(lines)) 53 | return lines.strip() 54 | 55 | def app_is_front(self): 56 | lines = self.get_front_app() 57 | lines = lines.split(os.linesep) 58 | for line in lines: 59 | if self.package in line: 60 | break 61 | else: 62 | raise Exception("app未启动") 63 | return (self.package in lines[-1]) and ("WebLandActivity" not in lines[-1]) and ( 64 | "ali" not in lines[-1].lower()) and ("wx" not in lines[-1].lower()) 65 | 66 | def get_packgelist(self): 67 | stdout = self.adb.raw_shell("pm list package") 68 | return stdout 69 | 70 | def is_install_package(self, package): 71 | stdout = self.adb.raw_shell("pm list package") 72 | logger.info("pm list package 返回内容:{0}".format(str(stdout))) 73 | if stdout.decode().find("package:" + package + os.linesep) > -1: 74 | return True 75 | else: 76 | return False 77 | 78 | def start_collect_logcat(self): 79 | self.collect_logcat.start() 80 | 81 | def _collect_logcat(self): 82 | with open(os.path.join(self.save_dir, "logcat.txt"), "w+") as f: 83 | pid = self.get_pid() 84 | collect_cmd = "adb logcat --pid=={}".format(pid) 85 | subprocess.run(collect_cmd.split(" "), stdout=f, stderr=f) 86 | 87 | def install_apk(self, apk_route): 88 | self.adb.raw_shell(["adb", "install", apk_route]) 89 | 90 | @func_set_timeout(5) 91 | def stop_app(self): 92 | self.adb.raw_shell(["am", "force-stop", self.package]) 93 | 94 | def start_app(self): # 启动app 95 | self.adb.raw_shell(['monkey', '-p', self.package, '-c', 'android.intent.category.LAUNCHER', '1']) 96 | 97 | def get_pid(self): 98 | try: 99 | pid_infos = self.adb.raw_shell("ps | grep " + self.package).decode() 100 | real_pid = None 101 | pid_infos = pid_infos.splitlines() 102 | for pid in pid_infos: 103 | if pid.split()[-1] == self.package: 104 | real_pid = pid.split()[1] 105 | if not real_pid: 106 | real_pid = pid_infos.split()[1] 107 | logger.info("测试包获取到的pid是{}".format(real_pid)) 108 | self.package_pid = real_pid 109 | return real_pid 110 | except IndexError as e: 111 | logger.error("获取到的pid信息是{}".format(pid_infos)) 112 | logger.exception(e) 113 | 114 | 115 | # class IosDevice(object): 116 | # def __init__(self, serialno, device_addr, package, save_dir): 117 | # self.tidevice = Tidevice(serialno=serialno, device_addr=device_addr, tidevice_path=IOSPYTHON + " -m tidevice") 118 | # self.serialno = serialno 119 | # self.device_addr = device_addr 120 | # self.package_pid = '' 121 | # self.package = package 122 | # self.save_dir = save_dir 123 | # if not self.is_install_package(): 124 | # raise Exception("设备没有安装对应的包{0},结束运行".format(self.package)) 125 | # # self.collect_logcat = threading.Thread(target=self._collect_logcat) 126 | # 127 | # def is_install_package(self): 128 | # stdout = self.tidevice.raw_shell("applist") 129 | # logger.info("pm list package 返回内容:{0}".format(str(stdout.decode()))) 130 | # lines = stdout.decode().strip() 131 | # for i in lines.split(): 132 | # if self.package in i: 133 | # return True 134 | # else: 135 | # return False 136 | # 137 | # def start_app(self): # 启动app 138 | # self.tidevice.raw_shell(['launch', self.package]) 139 | # 140 | # def stop_app(self): 141 | # self.tidevice.raw_shell(["kill", self.package]) 142 | # 143 | # def get_pid(self): 144 | # pass 145 | 146 | 147 | if __name__ == '__main__': 148 | device = AndroidDevice(serialno="99392a4c", server_addr=["localhost", "5037"], package="com.tencent.tmgp.sgame", 149 | save_dir="./test") 150 | device.start_app() 151 | pid = device.get_pid() 152 | print(pid) 153 | # ios = IosDevice(serialno="00008110-0002398A36B8801E", device_addr="10.130.131.82:20020?mjpeg_port=20021", package="com.happyelements.Sakicn", save_dir="") 154 | # is_install_apk = ios.is_install_package() 155 | # print(is_install_apk) 156 | # ios.start_app() 157 | # time.sleep(4) 158 | # ios.stop_app() 159 | # time.sleep(10) 160 | # print("end") 161 | -------------------------------------------------------------------------------- /performancetest/core/devicebattery.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | import sys 3 | 4 | sys.path.append("../") 5 | import csv 6 | import os 7 | import threading 8 | import time 9 | import traceback 10 | from builtins import * 11 | 12 | from performancetest.core.base.monitor import Monitor 13 | from performancetest.core.global_data import GlobalData as G, logger 14 | 15 | 16 | class DeviceBatteryFomatter(object): 17 | 18 | def __init__(self, device_battery): 19 | self.device_battery = device_battery 20 | self.property_info = self.device_battery.split(os.linesep) 21 | self.temperature = self.get_temperature() 22 | self.level = self.get_level() 23 | self.charge = self.get_charge() 24 | 25 | def get_temperature(self): 26 | return float(self.get_target_proerty("temperature")) * 0.1 27 | 28 | def get_level(self): 29 | return self.get_target_proerty("level") 30 | 31 | def get_charge(self): 32 | return str(self.get_target_proerty("status")) == "2" or self.get_target_proerty("USB powered") == "true" 33 | 34 | def get_target_proerty(self, target): 35 | try: 36 | for p in self.property_info: 37 | if target in p: 38 | return p.strip().split(": ")[1] 39 | return None 40 | except Exception as e: 41 | logger.error(e) 42 | return None 43 | 44 | def __repr__(self): 45 | return str({"property": self.property_info}) 46 | 47 | 48 | class DeviceBatteryMonitor(Monitor): 49 | def __init__(self, save_file, test_time=-1, interval=1): 50 | super().__init__() 51 | self.save_file = save_file 52 | self.test_time = test_time 53 | self._stop_event = threading.Event() 54 | self.interval = interval 55 | 56 | def get_device_battery_info(self): 57 | device_battery_info = G.device.adb.raw_shell("dumpsys battery".format(G.device.serialno)).decode() 58 | device_battery_info = DeviceBatteryFomatter(device_battery_info) 59 | logger.info("获取到的设备信息是:{}".format(device_battery_info)) 60 | return device_battery_info 61 | 62 | def start(self): 63 | super(Monitor, self).start() 64 | 65 | # 结束任务 66 | def stop(self): 67 | G.stop_event.clear() 68 | 69 | # 暂停任务 70 | def suspend(self): 71 | G.suspend_event.clear() 72 | 73 | def run(self): 74 | ''' 75 | 按照指定频率,循环搜集设备温度的信息 76 | :return: 77 | ''' 78 | device_battery_title = ["timestamp", "devicetemperature", "devicebatterylevel%", "charge"] 79 | device_battery_file = self.save_file 80 | with open(device_battery_file, 'w+') as df: 81 | csv.writer(df, lineterminator='\n').writerow(device_battery_title) 82 | G.stop_event.set() # 启动 83 | G.suspend_event.set() # 启动 84 | while G.stop_event.is_set(): # 停止了循环会停止 85 | G.suspend_event.wait() # 暂停时会暂停在这里 86 | device_battery_info_list = [] 87 | try: 88 | logger.debug("---------------开始获取手机温度 电量信息: " + str( 89 | threading.current_thread().name)) 90 | before = time.time() 91 | device_battery_info = self.get_device_battery_info() 92 | device_battery_info_list.append(before) 93 | device_battery_info_list.append(device_battery_info.temperature) 94 | device_battery_info_list.append(device_battery_info.level) 95 | device_battery_info_list.append(device_battery_info.charge) 96 | after = time.time() 97 | time_consume = after - before 98 | logger.debug(" ============== time consume for devicetemperature info : " + str(time_consume)) 99 | logger.info(device_battery_file + "*****************************") 100 | with open(device_battery_file, 'a+', encoding="utf-8") as df: 101 | csv.writer(df, lineterminator='\n').writerow(device_battery_info_list) 102 | del device_battery_info_list[:] 103 | delta_inter = self.interval - time_consume 104 | if delta_inter > 0: 105 | time.sleep(delta_inter) 106 | except Exception as e: 107 | logger.error("an exception hanpend in devicebatteryinfo thread , reason unkown!, e:") 108 | traceback.print_exc() 109 | G.device.get_pid() 110 | logger.debug("memory stop event is set or timeout") 111 | 112 | 113 | if __name__ == "__main__": 114 | from device import AndroidDevice 115 | 116 | G.device = AndroidDevice(serialno="emulator-5554", server_addr=["localhost", "5037"], 117 | package="com.road7.ddtdmxandroid.ld", save_dir="localhost") 118 | G.device.start_app() 119 | d = DeviceBatteryMonitor("./deviceBattery.txt") 120 | d.start() 121 | time.sleep(5) 122 | d.stop() 123 | -------------------------------------------------------------------------------- /performancetest/core/global_data.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | sys.path.append("../") 4 | import logging 5 | import threading 6 | from builtins import * 7 | 8 | logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(module)s - %(message)s') 9 | logger = logging.getLogger(__file__) 10 | 11 | 12 | class GlobalData(object): 13 | suspend_event = threading.Event() # 暂停,默认值是False,False是暂停,True是运行中 14 | stop_event = threading.Event() # 停止,默认是False,False 是停止, True 是运行中 15 | -------------------------------------------------------------------------------- /performancetest/core/gpu.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | import sys 3 | 4 | sys.path.append("../") 5 | import csv 6 | import os 7 | import threading 8 | import time 9 | import traceback 10 | from builtins import * 11 | 12 | from performancetest.core.base.monitor import Monitor 13 | from performancetest.core.global_data import GlobalData as G, logger 14 | 15 | 16 | class ParseGpuinfo(object): 17 | def __init__(self, package, gpuinfo, sdkversion=None): 18 | self.gpuinfo = gpuinfo 19 | self.package = package 20 | self.sdkversion = sdkversion 21 | self.gpur_rate = self.get_gpu_rate() 22 | 23 | def get_gpu_rate(self): 24 | for pidinfo in self.gpuinfo.split(os.linesep): 25 | if self.package in pidinfo: 26 | pidinfo = pidinfo.split() 27 | if pidinfo[-1] == self.package: 28 | return pidinfo[4].replace("%", '') 29 | return '' 30 | 31 | 32 | class GpuMonitor(Monitor): 33 | def __init__(self, save_file, test_time=-1, interval=1): 34 | super().__init__() 35 | self.save_file = save_file 36 | self.test_time = test_time 37 | self._stop_event = threading.Event() 38 | self.interval = interval 39 | 40 | def get_gpuinfo(self): 41 | gpu_info = G.device.adb.raw_shell("cat /sys/class/kgsl/kgsl-3d0/gpubusy").decode() 42 | gpu_info = gpu_info.strip() 43 | res_n = gpu_info.split(" ") 44 | for i in range(len(res_n) - 1, -1, -1): 45 | if res_n[i] == '': 46 | res_n.pop(i) 47 | gpu_info = 0 48 | try: 49 | gpu_info = int(res_n[0]) / int(res_n[1]) * 100 50 | except: 51 | pass 52 | logger.info("获取到的gpu信息是:{}".format(gpu_info)) 53 | return gpu_info 54 | 55 | def start(self): 56 | super(Monitor, self).start() 57 | 58 | # 结束任务 59 | def stop(self): 60 | G.stop_event.clear() 61 | 62 | # 暂停任务 63 | def suspend(self): 64 | G.suspend_event.clear() 65 | 66 | def run(self): 67 | ''' 68 | 按照指定频率,循环搜集gpu的信息 69 | :return: 70 | ''' 71 | gpu_title = ["timestamp", "gpu%"] 72 | gpu_file = self.save_file 73 | with open(gpu_file, 'w+') as df: 74 | csv.writer(df, lineterminator='\n').writerow(gpu_title) 75 | G.stop_event.set() # 启动 76 | G.suspend_event.set() # 启动 77 | while G.stop_event.is_set(): # 停止了循环会停止 78 | G.suspend_event.wait() # 暂停时会暂停在这里 79 | gpu_list = [] 80 | try: 81 | logger.debug("---------------开始获取gpu信息, into _collect_package_gpu_thread loop thread is : " + str( 82 | threading.current_thread().name)) 83 | before = time.time() 84 | gpu_list.append(before) 85 | # 为了gpu值的准确性,将采集的时间间隔放在top命令中了 86 | gpu_info = self.get_gpuinfo() 87 | gpu_list.append(gpu_info) 88 | after = time.time() 89 | time_consume = after - before 90 | logger.debug(" ============== time consume for gpu info : " + str(time_consume)) 91 | if gpu_info == None or gpu_info == '' or float(gpu_info) == 0: 92 | logger.error("can't get gpu info") 93 | G.device.get_pid() 94 | logger.info("重新获取pid,重启logcat") 95 | G.logcat.restart() 96 | # 取消获取不到跳过,默认给0 97 | gpu_list[-1] = 0 98 | with open(gpu_file, 'a+', encoding="utf-8") as df: 99 | csv.writer(df, lineterminator='\n').writerow(gpu_list) 100 | del gpu_list[:] 101 | delta_inter = self.interval - time_consume 102 | if delta_inter > 0: 103 | time.sleep(delta_inter) 104 | except Exception as e: 105 | logger.error("an exception hanpend in gpu thread , reason unkown!, e:") 106 | logger.error(e) 107 | traceback.print_exc() 108 | G.device.get_pid() 109 | logger.debug("gpu stop event is set or timeout") 110 | 111 | 112 | if __name__ == "__main__": 113 | from device import AndroidDevice 114 | 115 | G.device = AndroidDevice(serialno="emulator-5554", server_addr=["localhost", "5037"], 116 | package="com.road7.ddtdmxandroid.ld", save_dir="localhost") 117 | G.device.start_app() 118 | gpu = GpuMonitor("./gpu.txt") 119 | gpu.start() 120 | time.sleep(5) 121 | gpu.stop() 122 | -------------------------------------------------------------------------------- /performancetest/core/logcat.py: -------------------------------------------------------------------------------- 1 | # coding=utf8 2 | import sys 3 | 4 | sys.path.append("../") 5 | import os 6 | import subprocess 7 | import threading 8 | import time 9 | from builtins import * 10 | 11 | from performancetest.core.base.monitor import Monitor 12 | from performancetest.core.global_data import GlobalData as G, logger 13 | 14 | LOGCAT_FILE_NAE = "logcat.txt" 15 | 16 | 17 | class Logcat(Monitor): 18 | ''' 19 | logcat收集器 20 | ''' 21 | 22 | def __init__(self, package, save_dir): 23 | '''构造器 24 | :param str device: 设备 25 | :param str package : 包名 26 | :param timeout : logcat收集世家 27 | ''' 28 | super().__init__() 29 | self.package = package 30 | self.save_dir = save_dir 31 | self.running = False # logcat状态 32 | self.restart_lock = threading.Lock() 33 | self._stop_event = threading.Event() 34 | self.set_logcat_buffer("10M") # 设置logcat的缓冲去,默认的特别小容易logcat容易崩溃 35 | self.clear_logcat_buffer() 36 | self.pid = None 37 | G.stop_event.set() 38 | 39 | def set_logcat_buffer(self, size): 40 | logcat_buffer_cmd = "logcat -G {}".format(size) 41 | logcat_buffer_cmd = G.device.adb.start_cmd(logcat_buffer_cmd, only_args=True) 42 | res = subprocess.run(logcat_buffer_cmd, capture_output=True, timeout=20) 43 | if res.returncode == 0: 44 | logger.info("logcat设置缓存成功") 45 | else: 46 | logger.info("logcat设置缓存失败,错误信息:{}".format(res.stderr)) 47 | 48 | def clear_logcat_buffer(self): 49 | clear_logcat_buffer_cmd = "logcat -c" 50 | logcat_buffer_cmd = G.device.adb.start_cmd(clear_logcat_buffer_cmd, only_args=True) 51 | try: 52 | res = subprocess.run(logcat_buffer_cmd, capture_output=True, timeout=20) 53 | except subprocess.TimeoutExpired as e: 54 | logger.info("logcat清除缓存超时") 55 | return 56 | if res.returncode == 0: 57 | logger.info("logcat清除缓存成功") 58 | else: 59 | logger.info("logcat清除缓存失败,错误信息:{}".format(res.stderr)) 60 | 61 | def start(self): 62 | super(Monitor, self).start() 63 | 64 | # 结束任务 65 | def stop(self): 66 | self.stop_logcat() 67 | 68 | # 暂停任务 69 | def suspend(self): 70 | G.suspend_event.clear() 71 | 72 | def run(self): 73 | if G.stop_event.is_set(): # 只有还在运行中才启动logcat 74 | if not os.path.exists(self.save_dir): 75 | os.makedirs(self.save_dir) 76 | logcat_file = os.path.join(self.save_dir, LOGCAT_FILE_NAE) 77 | 78 | with open(logcat_file, "a+") as logcat_file: 79 | if self.running == True: 80 | logger.warning(u'logcat process have started,not need start') 81 | return 82 | if G.device.package_pid: 83 | self.pid = G.device.package_pid 84 | else: 85 | self.pid = G.device.get_pid() 86 | self.logcat_cmd = "logcat *:E".format(G.device.package_pid) 87 | self.logcat_cmd = G.device.adb.start_cmd(self.logcat_cmd, only_args=True) 88 | self.logcat_proc = subprocess.Popen(self.logcat_cmd, stdout=logcat_file, stderr=logcat_file) 89 | logger.info("启动logcat成功") 90 | self.running = True 91 | self._logcat_thread = threading.Thread(target=self._logcat_thead_func) 92 | self._logcat_thread.start() 93 | 94 | def _logcat_thead_func(self): 95 | self.logcat_proc.communicate() 96 | 97 | def restart(self): 98 | with self.restart_lock: # logcat 99 | if not self.pid == G.device.package_pid: # 只有pid不一样了才会重启logcat 100 | self.pid = G.device.package_pid 101 | self.stop() 102 | self.start() 103 | 104 | def stop_logcat(self): 105 | logger.info("进入stop_logcat函数") 106 | if self.running == True: 107 | self.running = False 108 | self.clear_logcat_buffer() 109 | logger.debug("stop logcat") 110 | # if hasattr(self, '_log_pipe'): 111 | if self.logcat_proc.poll() == None: # 判断logcat进程是否存在 112 | self.logcat_proc.terminate() 113 | logcat_pid = self.get_logcat_pid() 114 | G.device.adb.killpid(logcat_pid) 115 | 116 | def get_logcat_pid(self): 117 | res = G.device.adb.raw_shell("ps | grep logcat|grep --pid={}".format(G.device.package_pid)) 118 | try: 119 | pid = res.decode().split()[1] 120 | except Exception as e: 121 | pid = "" 122 | logger.info("logcat 获取pid发生异常:") 123 | logger.exception(e) 124 | logger.info("logcat 获取到的pid是{}".format(pid)) 125 | return pid 126 | 127 | def save(self, save_file_path, loglist): 128 | monkey_file = os.path.join(save_file_path) 129 | with open(monkey_file, 'a+', encoding="utf-8") as log_f: 130 | for log in loglist: 131 | log_f.write(log + "\n") 132 | 133 | 134 | # 135 | # class LogcatIos(Monitor): 136 | # ''' 137 | # logcat收集器 138 | # ''' 139 | # 140 | # def __init__(self, package, save_dir): 141 | # '''构造器 142 | # :param str device: 设备 143 | # :param str package : 包名 144 | # :param timeout : logcat收集世家 145 | # ''' 146 | # self.package = package 147 | # self.save_dir = save_dir 148 | # self.running = False # logcat状态 149 | # self.restart_lock = threading.Lock() 150 | # self._stop_event = threading.Event() 151 | # 152 | # def start(self): 153 | # '''启动logcat 154 | # ''' 155 | # self.start_logcat(self.package) 156 | # 157 | # def stop(self): 158 | # '''结束logcat 159 | # ''' 160 | # self.stop_logcat() 161 | # 162 | # def start_logcat(self, package): 163 | # if not G.stop_event.is_set(): # 只有还在运行中才启动logcat 164 | # if not os.path.exists(self.save_dir): 165 | # os.makedirs(self.save_dir) 166 | # logcat_file = os.path.join(self.save_dir, LOGCAT_FILE_NAE) 167 | # 168 | # # with open(logcat_file,"a+") as logcat_file: 169 | # if self.running == True: 170 | # logger.warning(u'ios logcat process have started,not need start') 171 | # return 172 | # self.logcat_cmd = "syslog | grep {0}".format(package) 173 | # # self.logcat_cmd = "logcat *:E --pid={}".format(G.device.package_pid) 174 | # self.logcat_proc = G.device.tidevice.cmd(self.logcat_cmd, is_block=False) 175 | # logger.info("ios 启动logcat成功") 176 | # self.running = True 177 | # self._logcat_thread = threading.Thread(target=self._logcat_thead_func, args=(logcat_file,)) 178 | # # self._monkey_thread.setDaemon(True) 179 | # self._logcat_thread.start() 180 | # 181 | # def _logcat_thead_func(self, logcat_file): 182 | # with open(logcat_file, 'a+', encoding="utf-8") as f: 183 | # while self.running: 184 | # try: 185 | # res = self.read_line() 186 | # except FunctionTimedOut as e: 187 | # logger.info(e) 188 | # continue 189 | # if res: 190 | # f.write(res) 191 | # logger.info("end run") 192 | # 193 | # def restart(self): 194 | # pass 195 | # 196 | # @func_set_timeout(1) 197 | # def read_line(self): 198 | # return self.logcat_proc.readline() 199 | # 200 | # def stop_logcat(self): 201 | # logger.info("进入stop_logcat函数") 202 | # if self.running == True: 203 | # self.running = False 204 | # logger.debug("ios stop logcat") 205 | # # if hasattr(self, '_log_pipe'): 206 | # try: 207 | # self.logcat_proc.close() 208 | # except Exception as e: 209 | # logger.debug("stop ios log err") 210 | # print(threading.enumerate()) 211 | 212 | # 213 | if __name__ == "__main__": 214 | from device import AndroidDevice 215 | 216 | G.device = AndroidDevice(serialno="emulator-5554", server_addr=["localhost", "5037"], 217 | package="com.road7.ddtdmxandroid.ld", save_dir="localhost") 218 | G.device.start_app() 219 | G.logcat = Logcat(package="com.road7.ddtdmxandroid.ld", save_dir="./") 220 | G.logcat.start() 221 | time.sleep(30) 222 | # # from device import AndroidDevice 223 | # # device=AndroidDevice(serialno="NCNNW21408002159",server_addr=["10.130.131.79","5039"],package="com.happyelements.es2", save_dir=r"C:\Users\happyelements\Desktop\tess.txt") 224 | # # device.start_collect_logcat() 225 | # # monkey = Monkey(device,package="com.happyelements.es2",save_dir='./') 226 | # # monkey.start() 227 | # # monkey.stop_monkey() 228 | # # G.device = AndroidDevice(serialno="NCNNW21408002159", server_addr=["10.130.131.79","5039"], package="com.happyelements.es2", 229 | # # save_dir="testlogcat.txt") 230 | # ios = IosDevice(serialno="00008030-001045603E50402E", device_addr="http://10.130.131.82:20001", 231 | # package="com.happyelements.Sakicn", save_dir=".") 232 | # G.device = ios 233 | # G.logcat = LogcatIos(package="com.happyelements.es2", save_dir=".") 234 | # G.logcat.start() 235 | # time.sleep(10) 236 | # G.logcat.stop() 237 | -------------------------------------------------------------------------------- /performancetest/core/memory.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | sys.path.append("../") 4 | import csv 5 | import re 6 | import threading 7 | import time 8 | import traceback 9 | from builtins import * 10 | 11 | from performancetest.core.base.monitor import Monitor 12 | from performancetest.core.global_data import GlobalData as G, logger 13 | 14 | 15 | class ParsMeminfo(object): 16 | RE_TOTAL_PSS = re.compile(r'TOTAL\s+(\d+)') 17 | 18 | def __init__(self, meminfo): 19 | self.meminfo = meminfo 20 | self.taltol_pss = self.get_taltol_pss() 21 | 22 | def get_taltol_pss(self): 23 | match = self.RE_TOTAL_PSS.search(self.meminfo) 24 | if match: 25 | return round(float(match.group(1)) / 1024, 2) 26 | else: 27 | return "" 28 | 29 | 30 | class MemoryMonitor(Monitor): 31 | def __init__(self, save_file, interval=1, test_time=-1): 32 | super().__init__() 33 | self.save_file = save_file 34 | self.test_time = test_time 35 | self.interval = interval 36 | 37 | def get_mem_info(self): 38 | if G.device.sdkversion >= 25: 39 | mem_info = G.device.adb.raw_shell("top -n 1 -p {} -o RES -b -q".format(G.device.package_pid)).decode() 40 | mem_info = mem_info.strip() 41 | return mem_info 42 | else: 43 | mem_info = G.device.adb.raw_shell("dumpsys meminfo {}".format(G.device.package)).decode() 44 | mem_info = str(ParsMeminfo(mem_info).taltol_pss) 45 | logger.info("当前获取到的mem信息是{}".format(mem_info)) 46 | return mem_info 47 | 48 | def start(self): 49 | super(Monitor, self).start() 50 | 51 | # 结束任务 52 | def stop(self): 53 | G.stop_event.clear() 54 | 55 | # 暂停任务 56 | def suspend(self): 57 | G.suspend_event.clear() 58 | 59 | def run(self): 60 | ''' 61 | 按照指定频率,循环搜集内存的信息 62 | ''' 63 | mem_title = ["timestamp", "memory"] 64 | mem_file = self.save_file 65 | with open(mem_file, 'w+') as df: 66 | csv.writer(df, lineterminator='\n').writerow(mem_title) 67 | G.stop_event.set() # 启动 68 | G.suspend_event.set() # 启动 69 | while G.stop_event.is_set(): # 停止了循环会停止 70 | G.suspend_event.wait() # 暂停时会暂停在这里 71 | mem_list = [] 72 | try: 73 | logger.debug("---------------开始获取手机内存信息, into _collect_package_mem_thread loop thread is : " + str( 74 | threading.current_thread().name)) 75 | before = time.time() 76 | mem_list.append(before) 77 | # 为了mem值的准确性,将采集的时间间隔放在top命令中了 78 | mem_info = self.get_mem_info() 79 | if "G" in mem_info: 80 | mem_info = float(mem_info.replace("G", "")) * 1024 81 | elif "M" in mem_info: 82 | mem_info = float(mem_info.replace("M", "")) 83 | mem_list.append(mem_info) 84 | after = time.time() 85 | time_consume = after - before 86 | logger.debug(" ============== time consume for mem info : " + str(time_consume)) 87 | if mem_list == None or mem_list == '': 88 | logger.debug("can't get memory info") 89 | logger.info("重新获取pid,重启logcat") 90 | if G.run_mode != "airtest_monkey": 91 | logger.info("重新获取pid,重启logcat") 92 | G.logcat.restart() 93 | G.device.get_pid() 94 | logger.info(mem_file + "*****************************") 95 | if not mem_info: 96 | mem_list[-1] = 0 97 | with open(mem_file, 'a+', encoding="utf-8") as df: 98 | csv.writer(df, lineterminator='\n').writerow(mem_list) 99 | del mem_list[:] 100 | delta_inter = self.interval - time_consume 101 | if delta_inter > 0: 102 | time.sleep(delta_inter) 103 | except Exception as e: 104 | logger.error("an exception hanpend in memory thread , reason unkown!, e:") 105 | logger.error(traceback.format_exc()) 106 | G.device.get_pid() 107 | logger.debug("memory stop event is set or timeout") 108 | 109 | 110 | if __name__ == "__main__": 111 | from device import AndroidDevice 112 | 113 | G.device = AndroidDevice(serialno="emulator-5554", server_addr=["localhost", "5037"], 114 | package="com.road7.ddtdmxandroid.ld", save_dir="localhost") 115 | G.device.start_app() 116 | mem = MemoryMonitor("./memory.txt") 117 | mem.start() 118 | time.sleep(10) 119 | mem.stop() 120 | -------------------------------------------------------------------------------- /performancetest/core/sib_server.py: -------------------------------------------------------------------------------- 1 | import http.server 2 | import platform 3 | import subprocess 4 | import sys 5 | import time 6 | import traceback 7 | 8 | sib = "sib" 9 | if sys.platform == "win32": 10 | sib = "Windows_x86_64\sib.exe" 11 | elif sys.platform == "darwin": 12 | arch = platform.processor() 13 | if 'arm' in arch.lower(): 14 | print("ARM Architecture") 15 | sib = "Mac_arm/sib" 16 | else: 17 | print("x86 Architecture") 18 | sib = "Mac_x86_64/sib" 19 | 20 | 21 | class MyRequestHandler(http.server.SimpleHTTPRequestHandler): 22 | sib_process = None 23 | 24 | def __init__(self, *args, **kwargs): 25 | super().__init__(*args, **kwargs) 26 | 27 | def do_GET(self): 28 | if self.path == '/resetsib': 29 | self.reset_sib() 30 | self.send_response(200) 31 | self.end_headers() 32 | self.wfile.write(b'SIB reset') 33 | elif self.path == '/stop': 34 | self.kill_sib() 35 | self.send_response(200) 36 | self.end_headers() 37 | self.wfile.write(b'SIB stop') 38 | # else: 39 | # super().do_GET() 40 | 41 | def reset_sib(self): 42 | try: 43 | self.kill_sib() 44 | except Exception as e: 45 | traceback.print_exc() 46 | try: 47 | self.start_sib() 48 | except Exception as e: 49 | traceback.print_exc() 50 | 51 | def start_sib(self): 52 | return_code = subprocess.run([sib, 'mount'], stderr=subprocess.PIPE, stdout=subprocess.PIPE) 53 | msg = return_code.stdout.decode() 54 | # print("msg:", msg) 55 | if "mount successful!" in msg: 56 | print("ios sdk 启动成功") 57 | elif "no device connected" in msg: 58 | print("未连接手机, 请连接手机") 59 | time.sleep(3) 60 | else: 61 | print("发生异常,请重新连接手机, 重新启动sdk") 62 | time.sleep(3) 63 | exit() 64 | MyRequestHandler.sib_process = subprocess.Popen([sib, 'remote', 'share'], stderr=subprocess.PIPE, 65 | stdout=subprocess.PIPE) 66 | print("new", MyRequestHandler.sib_process.pid) 67 | # outs, errs = MyRequestHandler.sib_process.communicate() 68 | # print(outs.decode()) 69 | 70 | def kill_sib(self): 71 | if MyRequestHandler.sib_process: 72 | MyRequestHandler.sib_process.kill() 73 | time.sleep(1) 74 | print("sdk kill", MyRequestHandler.sib_process.pid) 75 | 76 | 77 | if __name__ == '__main__': 78 | # 启动 SIB 79 | handler = MyRequestHandler 80 | handler.start_sib(handler) 81 | 82 | # 启动 HTTP 服务器 83 | httpd = http.server.HTTPServer(('0.0.0.0', 9130), MyRequestHandler) 84 | print('Server listening on localhost:9130') 85 | httpd.serve_forever() 86 | -------------------------------------------------------------------------------- /performancetest/core/snapshot.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | import sys 3 | 4 | sys.path.append("../") 5 | import threading 6 | import time 7 | from builtins import * 8 | from pathlib import Path 9 | 10 | from airtest.core.android import Android 11 | 12 | from performancetest.core.base.monitor import Monitor 13 | from performancetest.core.global_data import GlobalData as G, logger 14 | 15 | 16 | # # from config import PIC_TRUE_LOG 17 | # from PIL import Image 18 | # from func_timeout import func_set_timeout 19 | 20 | class SnapshotMonitor(Monitor): 21 | def __init__(self, save_dir, serialno, server_addr, interval=1, test_time=-1): 22 | super().__init__() 23 | self.save_dir = self.get_save_file(save_dir) 24 | self.interval = interval 25 | self.device = Android(serialno, host=server_addr) 26 | 27 | def get_save_file(self, save_dir): 28 | save_dir = Path(save_dir) 29 | if not save_dir.is_dir(): 30 | save_dir.mkdir(parents=True, exist_ok=True) 31 | return save_dir 32 | 33 | def snapshot(self, name): 34 | self.device.snapshot(filename=name) 35 | 36 | def start(self): 37 | super(Monitor, self).start() 38 | 39 | # 结束任务 40 | def stop(self): 41 | G.stop_event.clear() 42 | 43 | # 暂停任务 44 | def suspend(self): 45 | G.suspend_event.clear() 46 | 47 | def run(self): 48 | ''' 49 | 按照指定频率手机截图 50 | ''' 51 | logger.info("开始保存图片") 52 | G.stop_event.set() # 启动 53 | G.suspend_event.set() # 启动 54 | while G.stop_event.is_set(): # 停止了循环会停止 55 | G.suspend_event.wait() # 暂停时会暂停在这里 56 | try: 57 | logger.debug( 58 | "---------------开始截图, _collect_screenshot loop thread is : " + str(threading.current_thread().name)) 59 | before = time.time() 60 | self.snapshot(self.save_dir.joinpath(str(int(before * 1000)) + ".jpg")) 61 | after = time.time() 62 | time_consume = after - before 63 | logger.debug(" ============== time consume snapshot time : " + str(time_consume)) 64 | delta_inter = self.interval - time_consume 65 | if delta_inter > 0: 66 | time.sleep(delta_inter) 67 | except Exception as e: 68 | logger.error("an exception hanpend in snapshot thread , reason unkown!, e:") 69 | logger.exception(e) 70 | logger.debug("snapshot stop") 71 | 72 | 73 | # class IosSnapshotMonitor(Monitor): 74 | # def __init__(self, save_dir, serialno, host, port, package, interval=1, test_time=-1): 75 | # self.save_dir = self.get_save_file(save_dir) 76 | # self.interval = interval 77 | # wda.HTTP_TIMEOUT = 10.0 # default 60.0 seconds 78 | # self.dwa = wda.Client("http://" + ":".join([host, port])) 79 | # self.package = package 80 | # self.create_session() 81 | # self.screenshot_collect = threading.Thread(target=self._collect_screenshot, args=(test_time,)) 82 | # self._stop_event = threading.Event() 83 | # self.running = False 84 | # 85 | # @func_set_timeout(3) 86 | # def create_session(self): 87 | # self.session = self.dwa.session() 88 | # 89 | # def get_save_file(self, save_dir): 90 | # save_dir = Path(save_dir).joinpath(PIC_TRUE_LOG) 91 | # if not save_dir.is_dir(): 92 | # save_dir.mkdir(parents=True, exist_ok=True) 93 | # return save_dir 94 | # 95 | # def snapshot(self, name): 96 | # try: 97 | # self.session.screenshot(name) 98 | # compress = CompressImg(str(name)) 99 | # compress.compress_img_PIL() 100 | # os.rename(str(name), str(name).replace("png", "jpg")) 101 | # except Exception as e: 102 | # logger.error(e) 103 | # try: 104 | # self.session.close() 105 | # except Exception as e: 106 | # logger.error(e) 107 | # self.session = self.dwa.session() 108 | # # self.device.snapshot(filename=name) 109 | # 110 | # def start(self): 111 | # self.screenshot_collect.start() 112 | # 113 | # def stop(self): 114 | # self._stop_event.set() 115 | # try: 116 | # self.session.close() 117 | # except Exception as e: 118 | # logger.info("close wda") 119 | # 120 | # def __del__(self): 121 | # try: 122 | # self.session.close() 123 | # self.dwa.close() 124 | # except: 125 | # pass 126 | # 127 | # def _collect_screenshot(self, test_time): 128 | # ''' 129 | # 按照指定频率手机截图 130 | # ''' 131 | # logger.info("开始保存图片") 132 | # G.monitor_pause.wait() 133 | # while not self._stop_event.is_set() and not G.stop_event.is_set(): 134 | # try: 135 | # logger.debug( 136 | # "---------------开始截图, _collect_screenshot loop thread is : " + str(threading.current_thread().name)) 137 | # before = time.time() 138 | # print(str(self.save_dir.joinpath(str(before * 1000)))) 139 | # self.snapshot(self.save_dir.joinpath(str(int(before * 1000)) + ".png")) 140 | # after = time.time() 141 | # time_consume = after - before 142 | # logger.debug(" ============== time consume snapshot time : " + str(time_consume)) 143 | # delta_inter = self.interval - time_consume 144 | # if delta_inter > 0: 145 | # time.sleep(delta_inter) 146 | # except Exception as e: 147 | # logger.error("an exception hanpend in snapshot thread , reason unkown!, e:") 148 | # logger.exception(e) 149 | # G.monitor_pause.wait() 150 | # logger.debug("snapshot stop") 151 | # 152 | # 153 | # class CompressImg(object): 154 | # 155 | # def __init__(self, img_path): 156 | # self.img_path = img_path 157 | # self.img_name = img_path.split(os.sep)[-1] 158 | # 159 | # def compress_img_PIL(self, way=1, compress_rate=0.3, show=False): 160 | # ''' 161 | # img.resize() 方法可以缩小可以放大 162 | # img.thumbnail() 方法只能缩小 163 | # :param way: 164 | # :param compress_rate: 165 | # :param show: 166 | # :return: 167 | # ''' 168 | # img = Image.open(self.img_path) 169 | # w, h = img.size 170 | # img_resize = img.resize((int(w * compress_rate), int(h * compress_rate))) 171 | # resize_w, resieze_h = img_resize.size 172 | # img_resize.save(self.img_path) 173 | 174 | 175 | if __name__ == "__main__": 176 | s = SnapshotMonitor(save_dir=r"\home\report1\performance_test_result\192\295", serialno="emulator-5554", 177 | host="localhost", port="5037") 178 | s.start() 179 | time.sleep(10) 180 | s.stop() 181 | # s = IosSnapshotMonitor(save_dir=r"\home\report1\performance_test_result\192\295", serialno="NAB0220B05000134", 182 | # host="10.130.131.82", port="20008", package="com.happyelements.Sakicn") 183 | # s.start() 184 | -------------------------------------------------------------------------------- /performancetest/core/task_handle.py: -------------------------------------------------------------------------------- 1 | # _*_ coding: utf-8 _*_ 2 | import sys 3 | 4 | sys.path.append("../") 5 | import os 6 | import time 7 | from builtins import * 8 | from multiprocessing import Process 9 | 10 | from sqlalchemy import desc 11 | 12 | from performancetest.core.base.actuator import Actuator 13 | from performancetest.core.cpu import CpuMonitor 14 | from performancetest.core.device import AndroidDevice 15 | from performancetest.core.devicebattery import DeviceBatteryMonitor 16 | from performancetest.core.fps import FPSMonitor 17 | from performancetest.core.global_data import GlobalData as G 18 | from performancetest.core.gpu import GpuMonitor 19 | from performancetest.core.logcat import Logcat 20 | from performancetest.core.memory import MemoryMonitor 21 | from performancetest.core.snapshot import SnapshotMonitor 22 | from performancetest.web.dao import connect, Task 23 | 24 | 25 | class TaskHandle(Process, Actuator): 26 | 27 | def __init__(self, serialno: str, server_addr: list[str], package: str, save_dir: str): 28 | super(TaskHandle, self).__init__() 29 | self.serialno = serialno 30 | self.server_addr = server_addr 31 | self.package = package 32 | self.save_dir = save_dir 33 | if not os.path.exists(self.save_dir): 34 | os.makedirs(self.save_dir) 35 | self.daemon = True 36 | # signal.signal(signal.SIGTERM, self.stop()) 37 | # signal.signal(signal.SIGINT, self.stop()) 38 | 39 | def start(self): 40 | super().start() 41 | 42 | def run(self): 43 | with connect() as session: 44 | current_task_running = session.query(Task).filter(Task.host == self.server_addr[0]).filter( 45 | Task.port == self.server_addr[1]).filter(Task.status == 0).order_by(desc(Task.start_time)).first() 46 | current_task_running.status = 1 47 | current_task_running.pid = self.pid 48 | G.device = AndroidDevice(serialno=self.serialno, server_addr=self.server_addr, 49 | package=self.package, save_dir=self.save_dir) 50 | G.device.start_app() 51 | time.sleep(0.03) 52 | G.logcat = Logcat(package=self.package, save_dir=self.save_dir) 53 | CpuMonitor(os.path.join(self.save_dir, "cpu.csv")).start() 54 | MemoryMonitor(os.path.join(self.save_dir, "memory.csv")).start() 55 | FPSMonitor(os.path.join(self.save_dir, "fps.csv")).start() 56 | GpuMonitor(os.path.join(self.save_dir, "gpu.csv")).start() 57 | DeviceBatteryMonitor(os.path.join(self.save_dir, "devicebattery.csv")).start() 58 | SnapshotMonitor(os.path.join(self.save_dir, "picture_log"), self.serialno, self.server_addr).start() 59 | 60 | def stop(self): 61 | G.stop_event.clear() 62 | 63 | def suspend(self): 64 | G.suspend_event.clear() 65 | 66 | 67 | if __name__ == '__main__': 68 | task_process = TaskHandle(serialno="E6E4C20629011168", server_addr=["10.130.131.80", "5039"], 69 | package="com.happyelements.AndroidAnimal", save_dir="localhost") 70 | task_process.start() 71 | time.sleep(10) 72 | -------------------------------------------------------------------------------- /performancetest/sdk/adbsdk.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/sdk/adbsdk.zip -------------------------------------------------------------------------------- /performancetest/sdk/adbsdkmac.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/sdk/adbsdkmac.zip -------------------------------------------------------------------------------- /performancetest/sdk/sibsdk.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/sdk/sibsdk.zip -------------------------------------------------------------------------------- /performancetest/sdk/sibsdkmac.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/sdk/sibsdkmac.zip -------------------------------------------------------------------------------- /performancetest/test/__init__.py: -------------------------------------------------------------------------------- 1 | # _*_ coding: utf-8 _*_ 2 | -------------------------------------------------------------------------------- /performancetest/test/all_property_test.py: -------------------------------------------------------------------------------- 1 | # _*_ coding: utf-8 _*_ 2 | import time 3 | 4 | from performancetest.core.cpu import CpuMonitor 5 | from performancetest.core.device import AndroidDevice 6 | from performancetest.core.devicebattery import DeviceBatteryMonitor 7 | from performancetest.core.fps import FPSMonitor 8 | from performancetest.core.global_data import GlobalData as G 9 | from performancetest.core.gpu import GpuMonitor 10 | from performancetest.core.logcat import Logcat 11 | from performancetest.core.memory import MemoryMonitor 12 | 13 | 14 | def start(): 15 | G.device = AndroidDevice(serialno="emulator-5554", server_addr=["localhost", "5037"], 16 | package="com.road7.ddtdmxandroid.ld", save_dir="localhost") 17 | G.logcat = Logcat(package="com.road7.ddtdmxandroid.ld", save_dir="../core/") 18 | time.sleep(1) 19 | G.device.start_app() 20 | CpuMonitor("./cpu.txt").start() 21 | MemoryMonitor("./memory.txt").start() 22 | FPSMonitor("./FPS.txt").start() 23 | GpuMonitor("./gpu.txt").start() 24 | DeviceBatteryMonitor("./deviceBattery.txt").start() 25 | 26 | 27 | def stop(): 28 | G.stop_event.clear() 29 | 30 | 31 | if __name__ == '__main__': 32 | start() 33 | time.sleep(30) 34 | stop() 35 | -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/cpu.csv: -------------------------------------------------------------------------------- 1 | timestamp,cpu% 2 | 1680589436.8144438,0 3 | 1680589438.1076818,79.3 4 | 1680589439.125173,137 5 | 1680589440.1342657,40.7 6 | 1680589441.1548054,22.2 7 | 1680589442.1798556,96.2 8 | 1680589443.1992314,100 9 | 1680589444.2170405,60.7 10 | 1680589445.2239823,66.6 11 | 1680589446.2390633,125 12 | 1680589447.2545645,281 13 | 1680589448.2646544,453 14 | 1680589449.2883162,248 15 | 1680589450.3102589,22.2 16 | 1680589451.3297691,62.9 17 | 1680589452.3437066,25.9 18 | 1680589453.3638303,22.2 19 | 1680589454.3873532,107 20 | 1680589455.3981967,25.9 21 | 1680589456.4151344,28.5 22 | 1680589457.436122,22.2 23 | 1680589458.458461,22.2 24 | 1680589459.473307,14.8 25 | 1680589460.4950519,51.8 26 | 1680589461.5188892,25.0 27 | 1680589462.5315425,25.0 28 | 1680589463.561517,18.5 29 | 1680589464.5751324,18.5 30 | 1680589465.5867753,14.2 31 | 1680589466.6086667,25.9 32 | 1680589467.6254268,22.2 33 | 1680589468.6299963,40.7 34 | 1680589469.64842,29.6 35 | 1680589470.6708941,96.2 36 | 1680589471.680863,46.4 37 | 1680589472.691501,37.0 38 | 1680589473.7008038,22.2 39 | 1680589474.722765,25.0 40 | 1680589475.7390862,18.5 41 | 1680589476.7538803,22.2 42 | 1680589477.7625818,18.5 43 | 1680589478.7713783,55.5 44 | 1680589479.7880213,59.2 45 | 1680589480.7964284,37.0 46 | 1680589481.8149118,55.5 47 | 1680589482.8306737,48.1 48 | 1680589483.8511076,46.4 49 | 1680589484.863558,25.0 50 | 1680589485.8810232,25.9 51 | 1680589486.9044409,25.9 52 | 1680589487.9221494,25.0 53 | 1680589488.9403062,25.0 54 | 1680589489.9518802,37.0 55 | 1680589490.9615176,44.4 56 | 1680589491.979415,51.8 57 | 1680589493.0021477,29.6 58 | 1680589494.0143106,48.1 59 | 1680589495.0243914,22.2 60 | 1680589496.0412114,14.2 61 | 1680589497.0630014,44.8 62 | 1680589498.0849292,21.4 63 | 1680589499.0943775,18.5 64 | 1680589500.1134958,14.8 65 | 1680589501.1233077,35.7 66 | 1680589502.1443534,17.8 67 | 1680589503.1609058,37.0 68 | 1680589504.173308,25.9 69 | 1680589505.182694,48.1 70 | 1680589506.208462,37.0 71 | 1680589507.2335675,39.2 72 | 1680589508.2488878,37.0 73 | 1680589509.2652984,37.0 74 | 1680589510.2800438,29.6 75 | 1680589511.2965915,48.1 76 | 1680589512.3126872,18.5 77 | 1680589513.328339,14.8 78 | 1680589514.3366766,32.1 79 | 1680589515.3565197,25.9 80 | 1680589516.3676875,51.8 81 | 1680589517.375749,17.8 82 | 1680589518.3974032,25.9 83 | 1680589519.4056106,40.7 84 | 1680589520.4260714,22.2 85 | 1680589521.4370341,44.4 86 | 1680589522.4497762,44.4 87 | 1680589523.4691024,40.7 88 | 1680589524.4898427,33.3 89 | 1680589525.4993296,77.7 90 | 1680589526.511202,40.7 91 | 1680589527.5288954,29.6 92 | 1680589528.5439646,22.2 93 | 1680589529.5573225,22.2 94 | 1680589530.5686214,29.6 95 | 1680589531.5762546,25.9 96 | 1680589532.6047585,35.7 97 | 1680589533.6214707,25.9 98 | 1680589534.6334138,29.6 99 | 1680589535.636946,25.9 100 | 1680589536.6572523,29.6 101 | 1680589537.6719315,29.6 102 | 1680589538.6895053,29.6 103 | 1680589539.7072523,62.9 104 | 1680589540.7225945,70.3 105 | 1680589541.7318344,82.1 106 | 1680589542.7482972,39.2 107 | 1680589543.7671983,25.9 108 | 1680589544.7888,59.2 109 | 1680589545.8055117,60.7 110 | 1680589546.8128052,62.9 111 | 1680589547.8321624,42.8 112 | 1680589548.8432367,32.1 113 | 1680589549.8582559,28.5 114 | 1680589550.8694878,29.6 115 | 1680589551.8876247,29.6 116 | 1680589552.8959556,28.5 117 | 1680589553.9050305,25.9 118 | 1680589554.9240758,25.0 119 | 1680589555.9330492,25.9 120 | 1680589556.943302,33.3 121 | 1680589557.9648838,25.9 122 | 1680589558.9806042,25.0 123 | 1680589559.994917,25.9 124 | 1680589561.016468,25.0 125 | 1680589562.0267818,53.5 126 | 1680589563.04336,55.5 127 | 1680589564.0544608,60.7 128 | 1680589565.06304,28.5 129 | 1680589566.080448,67.8 130 | 1680589567.0964022,51.8 131 | 1680589568.1151428,40.7 132 | 1680589569.129777,40.7 133 | 1680589570.1532114,48.1 134 | 1680589571.1733148,28.5 135 | 1680589572.1801665,22.2 136 | 1680589573.1878066,25.9 137 | 1680589574.2017088,25.9 138 | 1680589575.2217793,27.5 139 | 1680589576.2378938,29.6 140 | 1680589577.254377,25.0 141 | 1680589578.2729533,25.9 142 | 1680589579.2933445,35.7 143 | 1680589580.3048809,39.2 144 | 1680589581.3284504,28.5 145 | 1680589582.348416,28.5 146 | 1680589583.3624618,25.9 147 | 1680589584.3770592,25.9 148 | 1680589585.39393,51.8 149 | 1680589586.4054477,40.7 150 | 1680589587.4286985,53.5 151 | 1680589588.4386473,51.8 152 | 1680589589.456068,33.3 153 | 1680589590.4690294,25.9 154 | 1680589591.4796135,29.6 155 | 1680589592.4895854,29.6 156 | 1680589593.4998522,25.9 157 | 1680589594.520974,25.9 158 | 1680589595.5295386,25.9 159 | 1680589596.5416484,62.9 160 | 1680589597.562358,37.0 161 | 1680589598.5796347,44.4 162 | 1680589599.5923436,25.0 163 | 1680589600.613681,29.6 164 | 1680589601.6244912,40.7 165 | 1680589602.6448827,44.4 166 | 1680589603.666492,29.6 167 | 1680589604.6750913,51.8 168 | 1680589605.6877737,32.1 169 | 1680589606.7044575,32.1 170 | 1680589607.7225428,60.7 171 | 1680589608.7336423,70.3 172 | 1680589609.7503955,57.1 173 | 1680589610.7685254,33.3 174 | 1680589611.7892656,25.0 175 | 1680589612.8118963,25.0 176 | 1680589613.8317282,29.6 177 | 1680589614.8451219,28.5 178 | 1680589615.8601463,50.0 179 | 1680589616.876573,29.6 180 | 1680589617.896777,33.3 181 | 1680589618.9127598,29.6 182 | 1680589619.922464,28.5 183 | 1680589620.934581,48.1 184 | 1680589621.9525783,39.2 185 | 1680589622.9745328,32.1 186 | 1680589623.9972148,32.1 187 | 1680589625.0089684,32.1 188 | 1680589626.0304928,42.8 189 | 1680589627.0469208,39.2 190 | 1680589628.0635793,35.7 191 | 1680589629.0770195,46.4 192 | 1680589630.1008239,29.6 193 | 1680589631.1170988,29.6 194 | 1680589632.1398299,32.1 195 | 1680589633.1517453,39.2 196 | 1680589634.1628613,25.0 197 | 1680589635.1751347,33.3 198 | 1680589636.19152,25.9 199 | 1680589637.2090526,32.1 200 | 1680589638.2148054,28.5 201 | 1680589639.2351458,29.6 202 | 1680589640.249678,33.3 203 | 1680589641.268355,32.1 204 | 1680589642.2887084,28.5 205 | 1680589643.2967315,35.7 206 | 1680589644.3076088,50.0 207 | 1680589645.330959,50.0 208 | 1680589646.342862,75.0 209 | 1680589647.3565886,46.4 210 | 1680589648.3714578,46.4 211 | 1680589649.382627,51.8 212 | 1680589650.388287,66.6 213 | 1680589651.410492,25.0 214 | 1680589652.4265647,29.6 215 | 1680589653.4423757,46.4 216 | 1680589654.464074,59.2 217 | 1680589655.4807367,29.6 218 | 1680589656.5019963,29.6 219 | 1680589657.5091114,25.0 220 | 1680589658.5303552,33.3 221 | 1680589659.5526645,28.5 222 | 1680589660.562307,48.1 223 | 1680589661.577419,55.5 224 | 1680589662.5960507,88.8 225 | 1680589663.606135,103 226 | 1680589664.6176367,82.1 227 | 1680589665.6382763,37.0 228 | 1680589666.6545331,33.3 229 | 1680589667.6662128,37.0 230 | 1680589668.7042582,25.0 231 | 1680589669.7180176,21.4 232 | 1680589670.7333214,103 233 | 1680589671.7478614,107 234 | 1680589672.7665908,46.4 235 | 1680589673.7890537,51.8 236 | 1680589674.7982254,42.8 237 | 1680589675.808495,44.4 238 | 1680589676.8188522,25.0 239 | 1680589677.841394,33.3 240 | 1680589678.8640716,0 241 | 1680589680.0972517,7.1 242 | 1680589681.1076822,3.5 243 | 1680589682.12433,0 244 | 1680589683.4930463,20.0 245 | 1680589684.5155816,35.7 246 | 1680589685.527274,107 247 | 1680589686.5468805,20.6 248 | 1680589687.5590281,17.8 249 | 1680589688.5752623,17.8 250 | 1680589689.5897408,21.4 251 | 1680589690.6082704,21.4 252 | 1680589691.625953,25.0 253 | 1680589692.6405778,21.4 254 | 1680589693.6534612,21.4 255 | 1680589694.6726692,21.4 256 | 1680589695.6898868,25.0 257 | 1680589696.715467,17.2 258 | 1680589697.7342222,39.2 259 | 1680589698.74807,25.0 260 | 1680589699.7697835,50.0 261 | 1680589700.7871156,28.5 262 | 1680589701.8092406,25.0 263 | 1680589702.830158,21.4 264 | 1680589703.8391354,20.6 265 | 1680589704.863065,28.5 266 | 1680589705.8744314,17.8 267 | 1680589706.8975723,17.8 268 | 1680589707.906589,21.4 269 | 1680589708.9247184,57.1 270 | 1680589709.9378526,103 271 | 1680589710.9569561,100 272 | 1680589711.97829,31.0 273 | 1680589712.9999235,25.0 274 | 1680589714.0125103,21.4 275 | 1680589715.0287516,17.8 276 | 1680589716.0452917,21.4 277 | 1680589717.0535316,21.4 278 | 1680589718.0761042,14.2 279 | 1680589719.0863805,17.8 280 | 1680589720.0992703,17.8 281 | 1680589721.1053302,17.8 282 | 1680589722.1238317,42.8 283 | 1680589723.141236,64.2 284 | 1680589724.1586287,25.0 285 | 1680589725.1709952,25.0 286 | 1680589726.1825757,21.4 287 | 1680589727.20423,28.5 288 | 1680589728.2158237,85.7 289 | 1680589729.2307396,25.0 290 | 1680589730.2478921,50.0 291 | 1680589731.2570956,28.5 292 | 1680589732.274733,35.7 293 | 1680589733.290314,60.7 294 | 1680589734.3060272,32.1 295 | 1680589735.3210187,28.5 296 | 1680589736.332826,28.5 297 | 1680589737.346894,28.5 298 | 1680589738.3561208,28.5 299 | 1680589739.3722336,28.5 300 | 1680589740.3881907,21.4 301 | 1680589741.4036293,25.0 302 | 1680589742.4154072,21.4 303 | 1680589743.4319856,21.4 304 | 1680589744.4549866,21.4 305 | 1680589745.473123,39.2 306 | 1680589746.486322,25.0 307 | 1680589747.5015717,25.0 308 | 1680589748.5173974,25.0 309 | 1680589749.5317876,53.5 310 | 1680589750.5478332,28.5 311 | 1680589751.5668325,32.1 312 | 1680589752.5751166,28.5 313 | 1680589753.5965126,78.5 314 | 1680589754.6181312,46.4 315 | 1680589755.6397212,64.2 316 | 1680589756.6591716,32.1 317 | 1680589757.6713378,59.2 318 | 1680589758.6903062,55.5 319 | 1680589759.7034907,28.5 320 | 1680589760.715753,32.1 321 | 1680589761.7307017,42.8 322 | 1680589762.748471,50.0 323 | 1680589763.7598429,35.7 324 | 1680589764.7795413,46.4 325 | 1680589765.7995296,78.5 326 | 1680589766.8135376,17.8 327 | 1680589767.82698,17.8 328 | 1680589768.8459342,28.5 329 | 1680589769.8595796,17.8 330 | 1680589770.8681736,21.4 331 | 1680589771.8904097,25.0 332 | 1680589772.9043784,17.8 333 | 1680589773.9208817,60.7 334 | 1680589774.9307692,32.1 335 | 1680589775.9511738,28.5 336 | 1680589776.9656603,42.8 337 | 1680589777.9784386,42.8 338 | 1680589778.987533,50.0 339 | 1680589779.9976404,46.4 340 | 1680589781.0123112,42.8 341 | 1680589782.027531,39.2 342 | 1680589783.050734,42.8 343 | 1680589784.0632727,42.8 344 | 1680589785.0737016,32.1 345 | 1680589786.0938942,32.1 346 | 1680589787.115581,28.5 347 | 1680589788.1258752,28.5 348 | 1680589789.1472528,28.5 349 | 1680589790.1622753,46.4 350 | 1680589791.1875398,46.4 351 | 1680589792.203836,42.8 352 | 1680589793.2188876,42.8 353 | -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589437252.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589437252.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589440650.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589440650.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589441661.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589441661.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589442668.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589442668.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589443675.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589443675.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589444690.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589444690.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589445696.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589445696.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589446704.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589446704.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589447717.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589447717.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589448734.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589448734.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589449744.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589449744.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589450754.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589450754.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589451769.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589451769.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589452775.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589452775.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589453781.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589453781.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589454785.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589454785.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589455799.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589455799.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589456803.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589456803.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589457811.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589457811.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589458814.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589458814.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589459817.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589459817.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589460822.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589460822.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589461829.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589461829.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589462839.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589462839.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589463850.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589463850.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589464858.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589464858.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589465865.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589465865.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589466873.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589466873.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589467879.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589467879.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589468893.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589468893.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589469897.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589469897.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589470905.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589470905.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589471912.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589471912.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589472921.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589472921.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589473936.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589473936.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589474943.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589474943.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589475951.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589475951.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589476957.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589476957.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589477963.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589477963.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589478971.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589478971.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589479972.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589479972.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589480981.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589480981.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589481987.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589481987.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589482999.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589482999.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589484007.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589484007.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589485018.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589485018.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589486022.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589486022.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589487026.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589487026.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589488041.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589488041.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589489049.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589489049.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589490062.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589490062.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589491067.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589491067.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589492073.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589492073.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589493078.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589493078.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589494091.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589494091.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589495102.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589495102.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589496118.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589496118.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589497123.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589497123.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589498131.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589498131.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589499142.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589499142.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589500145.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589500145.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589501154.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589501154.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589502159.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589502159.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589503177.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589503177.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589504188.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589504188.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589505198.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589505198.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589506207.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589506207.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589507217.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589507217.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589508233.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589508233.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589509248.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589509248.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589510264.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589510264.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589511279.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589511279.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589512280.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589512280.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589513296.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589513296.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589514306.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589514306.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589515310.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589515310.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589516320.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589516320.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589517328.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589517328.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589518332.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589518332.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589519342.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589519342.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589520346.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589520346.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589521358.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589521358.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589522373.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589522373.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589523375.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589523375.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589524382.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589524382.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589525392.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589525392.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589526406.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589526406.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589527408.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589527408.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589528421.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589528421.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589529441.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589529441.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589530444.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589530444.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589531456.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589531456.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589532474.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589532474.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589533483.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589533483.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589534496.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589534496.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589535513.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589535513.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589536516.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589536516.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589537529.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589537529.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589538535.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589538535.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589539537.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589539537.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589540546.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589540546.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589541561.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589541561.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589542577.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589542577.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589543579.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589543579.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589544588.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589544588.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589545602.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589545602.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589546608.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589546608.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589547618.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589547618.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589548626.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589548626.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589549640.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589549640.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589550650.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589550650.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589551653.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589551653.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589552663.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589552663.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589553670.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589553670.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589554674.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589554674.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589555688.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589555688.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589556698.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589556698.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589557704.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589557704.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589558707.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589558707.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589559722.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589559722.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589560732.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589560732.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589561746.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589561746.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589562753.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589562753.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589563757.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589563757.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589564765.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589564765.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589565772.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589565772.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589566782.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589566782.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589567794.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589567794.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589568806.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589568806.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589569811.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589569811.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589570816.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589570816.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589571820.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589571820.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589572832.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589572832.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589573844.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589573844.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589574854.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589574854.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589575866.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589575866.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589576870.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589576870.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589577871.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589577871.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589578875.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589578875.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589579886.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589579886.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589580895.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589580895.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589581898.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589581898.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589582904.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589582904.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589583916.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589583916.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589584920.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589584920.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589585937.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589585937.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589586946.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589586946.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589587953.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589587953.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589588960.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589588960.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589589970.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589589970.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589590981.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589590981.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589591992.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589591992.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589592997.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589592997.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589594008.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589594008.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589595024.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589595024.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589596028.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589596028.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589597035.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589597035.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589598039.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589598039.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589599044.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589599044.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589600054.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589600054.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589601062.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589601062.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589602073.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589602073.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589603075.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589603075.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589604085.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589604085.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589605088.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589605088.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589606105.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589606105.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589607109.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589607109.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589608112.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589608112.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589609116.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589609116.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589610124.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589610124.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589611140.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589611140.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589612145.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589612145.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589613151.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589613151.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589614154.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589614154.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589615168.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589615168.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589616183.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589616183.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589617201.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589617201.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589618203.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589618203.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589619207.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589619207.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589620214.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589620214.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589621217.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589621217.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589622232.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589622232.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589623238.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589623238.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589624248.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589624248.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589625256.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589625256.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589626262.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589626262.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589627278.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589627278.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589628280.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589628280.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589629296.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589629296.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589630300.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589630300.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589631303.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589631303.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589632309.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589632309.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589633322.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589633322.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589634329.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589634329.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589635346.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589635346.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589636357.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589636357.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589637361.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589637361.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589638365.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589638365.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589639374.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589639374.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589640385.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589640385.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589641393.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589641393.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589642395.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589642395.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589643406.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589643406.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589644418.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589644418.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589645424.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589645424.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589646436.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589646436.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589647446.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589647446.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589648462.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589648462.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589649474.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589649474.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589650481.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589650481.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589651487.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589651487.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589652501.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589652501.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589653505.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589653505.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589654509.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589654509.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589655512.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589655512.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589656518.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589656518.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589657524.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589657524.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589658530.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589658530.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589659537.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589659537.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589660546.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589660546.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589661562.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589661562.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589662579.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589662579.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589663592.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589663592.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589664602.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589664602.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589665608.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589665608.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589666621.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589666621.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589667634.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589667634.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589668637.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589668637.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589669643.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589669643.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589670657.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589670657.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589671670.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589671670.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589672677.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589672677.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589673680.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589673680.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589674689.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589674689.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589675700.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589675700.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589676709.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589676709.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589677718.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589677718.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589678725.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589678725.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589679741.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589679741.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589680747.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589680747.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589681754.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589681754.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589682768.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589682768.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589683770.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589683770.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589684780.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589684780.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589685788.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589685788.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589686792.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589686792.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589687804.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589687804.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589688819.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589688819.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589689821.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589689821.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589690837.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589690837.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589691843.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589691843.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589692853.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589692853.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589693866.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589693866.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589694876.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589694876.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589695890.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589695890.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589696900.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589696900.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589697916.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589697916.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589698921.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589698921.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589699927.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589699927.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589700939.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589700939.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589701949.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589701949.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589702952.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589702952.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589703961.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589703961.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589704972.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589704972.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589705982.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589705982.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589706990.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589706990.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589707999.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589707999.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589709016.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589709016.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589710033.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589710033.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589711049.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589711049.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589712055.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589712055.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589713060.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589713060.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589714075.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589714075.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589715089.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589715089.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589716107.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589716107.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589717114.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589717114.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589718122.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589718122.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589719131.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589719131.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589720149.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589720149.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589721171.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589721171.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589722185.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589722185.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589723202.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589723202.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589724204.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589724204.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589725217.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589725217.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589726229.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589726229.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589727234.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589727234.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589728246.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589728246.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589729261.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589729261.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589730263.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589730263.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589731272.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589731272.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589732275.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589732275.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589733289.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589733289.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589734290.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589734290.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589735306.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589735306.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589736316.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589736316.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589737331.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589737331.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589738339.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589738339.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589739341.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589739341.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589740357.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589740357.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589741374.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589741374.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589742385.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589742385.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589743401.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589743401.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589744407.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589744407.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589745410.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589745410.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589746426.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589746426.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589747440.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589747440.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589748455.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589748455.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589749470.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589749470.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589750484.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589750484.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589751489.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589751489.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589752499.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589752499.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589753501.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589753501.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589754509.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589754509.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589755516.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589755516.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589756521.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589756521.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589757532.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589757532.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589758535.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589758535.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589759547.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589759547.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589760562.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589760562.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589761565.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589761565.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589762580.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589762580.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589763589.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589763589.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589764593.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589764593.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589765596.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589765596.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589766610.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589766610.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589767624.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589767624.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589768629.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589768629.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589769643.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589769643.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589770649.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589770649.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589771659.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589771659.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589772675.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589772675.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589773677.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589773677.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589774685.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589774685.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589775700.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589775700.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589776705.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589776705.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589777717.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589777717.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589778726.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589778726.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589779740.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589779740.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589780752.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589780752.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589781765.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589781765.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589782774.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589782774.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589783786.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589783786.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589784790.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589784790.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589785796.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589785796.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589786807.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589786807.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589787819.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589787819.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589788835.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589788835.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589789839.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589789839.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589790847.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589790847.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589791851.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589791851.jpg -------------------------------------------------------------------------------- /performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589792863.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/127.0.0.1/1680589434/picture_log/1680589792863.jpg -------------------------------------------------------------------------------- /performancetest/test_result/iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/performancetest/test_result/iphone.png -------------------------------------------------------------------------------- /performancetest/web/__init__.py: -------------------------------------------------------------------------------- 1 | # _*_ coding: utf-8 _*_ 2 | -------------------------------------------------------------------------------- /performancetest/web/dao.py: -------------------------------------------------------------------------------- 1 | # _*_ coding: utf-8 _*_ 2 | import os 3 | import sys 4 | 5 | sys.path.append("../") 6 | from builtins import * 7 | from contextlib import contextmanager 8 | from sqlalchemy_serializer import SerializerMixin 9 | from sqlalchemy import create_engine, Column, String, Integer, DateTime 10 | from sqlalchemy.ext.declarative import declarative_base 11 | from sqlalchemy.orm import sessionmaker 12 | 13 | from performancetest.core.device import logger 14 | 15 | base_dir = os.path.dirname(os.path.abspath(__file__)) 16 | db_path = os.path.join(base_dir, 'task.sqlite') 17 | logger.info("db path {0}".format(db_path)) 18 | engine = create_engine('sqlite:///{0}'.format(db_path)) 19 | logger.info("current path {0}".format(os.getcwd())) 20 | Session = sessionmaker(bind=engine) 21 | Base = declarative_base() 22 | 23 | 24 | @contextmanager 25 | def connect(): 26 | logger.info("begin sql") 27 | session = Session() 28 | try: 29 | yield session 30 | session.commit() 31 | logger.info("sql success") 32 | except Exception as e: 33 | session.rollback() 34 | raise e 35 | finally: 36 | session.close() 37 | logger.info("sql end") 38 | 39 | 40 | class Task(Base, SerializerMixin): 41 | __tablename__ = 'tasks' 42 | id = Column(Integer, primary_key=True, autoincrement=True) 43 | host = Column(String(50), default=None) 44 | port = Column(Integer) 45 | start_time = Column(DateTime, default=None) 46 | end_time = Column(DateTime, default=None) 47 | serialno = Column(String(255), default=None) 48 | status = Column(Integer) # 0未开始, 1 执行中 , 2 执行完成 3.暂停 49 | file_dir = Column(String(255), default=None) # 存储csv文件的路径 50 | package = Column(String(255), default=None) # 测试的app包名 51 | pid = Column(Integer) # 当前任务运行的进程pid,任务执行的进程,里面有各个性能指标的线程 52 | 53 | 54 | # if __name__ == '__main__': 55 | Base.metadata.create_all(engine) 56 | -------------------------------------------------------------------------------- /performancetest/web/entity.py: -------------------------------------------------------------------------------- 1 | # _*_ coding: utf-8 _*_ 2 | import sys 3 | 4 | sys.path.append("../") 5 | from builtins import * 6 | 7 | from pydantic import BaseModel 8 | 9 | 10 | class TaskEntity(BaseModel): 11 | serialno: str 12 | port: int 13 | package: str 14 | 15 | 16 | class DeviceEntity(BaseModel): 17 | serialno: str 18 | 19 | 20 | class PackageEntity(BaseModel): 21 | serialno: str 22 | package: str 23 | -------------------------------------------------------------------------------- /performancetest/web/main.py: -------------------------------------------------------------------------------- 1 | # _*_ coding: utf-8 _*_ 2 | import datetime 3 | import os 4 | import platform 5 | import re 6 | import sys 7 | import time 8 | import traceback 9 | from builtins import * 10 | 11 | import psutil 12 | from airtest.core.android.adb import ADB 13 | from fastapi import FastAPI, Request 14 | from func_timeout import func_set_timeout, FunctionTimedOut 15 | from starlette.responses import RedirectResponse, JSONResponse 16 | from starlette.staticfiles import StaticFiles 17 | 18 | sys.path.append("../") 19 | from performancetest.core.global_data import logger 20 | from performancetest.core.task_handle import TaskHandle 21 | from performancetest.web.dao import connect, Task 22 | from performancetest.web.entity import DeviceEntity, PackageEntity, TaskEntity 23 | from performancetest.web.util import DataCollect 24 | 25 | app = FastAPI() 26 | BASE_CSV_DIR = os.path.join(os.path.split(os.path.dirname(os.path.abspath(__file__)))[0], "test_result") 27 | BASE_SDK_DIR = os.path.join(os.path.split(os.path.dirname(os.path.abspath(__file__)))[0], "sdk") 28 | app.mount("/static", StaticFiles(directory=BASE_CSV_DIR), name="static") 29 | app.mount("/sdk", StaticFiles(directory=BASE_SDK_DIR), name="sdk") 30 | 31 | 32 | # 定义异常处理程序 33 | @app.exception_handler(Exception) 34 | async def exception_handler(request: Request, exc: Exception): 35 | return JSONResponse( 36 | content={"code": "500", "err": exc.args}, 37 | ) 38 | 39 | 40 | # 中间件函数 41 | @app.middleware("http") 42 | async def handle_exceptions(request: Request, call_next): 43 | try: 44 | return await call_next(request) 45 | except BaseException as exc: 46 | return await exception_handler(request, exc) 47 | 48 | 49 | @app.get("/") 50 | async def index(): 51 | return RedirectResponse(url="/static/index.html") 52 | 53 | 54 | @app.get("/get_local_device/") 55 | async def create_item(request: Request): 56 | client_host: str = request.client.host 57 | try: 58 | adb: ADB = ADB(server_addr=(client_host, 5037)) 59 | devices: list = adb_devices(adb) 60 | except FunctionTimedOut as e: 61 | return [] 62 | res_list: list = [] 63 | for i in devices: 64 | adb.serialno = i[0] 65 | info: dict = adb.get_device_info() 66 | info["host"] = client_host 67 | info["port"] = 5037 68 | res_list.append(info) 69 | logger.info(res_list) 70 | return res_list 71 | 72 | 73 | @app.post("/get_local_device_packages/") 74 | async def get_local_device_packages(request: Request, device: DeviceEntity): 75 | client_host: str = request.client.host 76 | try: 77 | adb: ADB = ADB(server_addr=(client_host, 5037), serialno=device.serialno) 78 | app_list: list = adb_app_list(adb) 79 | except FunctionTimedOut as e: 80 | return [] 81 | logger.info(app_list) 82 | return app_list 83 | 84 | 85 | @app.post("/get_local_device_packages_version/") 86 | async def get_local_device_packages_version(request: Request, package: PackageEntity): 87 | client_host: str = request.client.host 88 | adb: ADB = ADB(server_addr=(client_host, 5037), serialno=package.serialno) 89 | package_info = adb.shell(['dumpsys', 'package', package.package]) 90 | matcher = re.search(r'versionName=(.*)', package_info) 91 | if matcher: 92 | version = matcher.group(1) 93 | else: 94 | version = '' 95 | return version 96 | 97 | 98 | @app.get("/get_all_task/") 99 | async def get_all_task(request: Request): 100 | client_host: str = request.client.host 101 | with connect() as session: 102 | all_task = session.query(Task).filter(Task.host == client_host).filter(Task.id != 1).all() 103 | logger.info(all_task) 104 | res: list = [i.to_dict() for i in all_task] 105 | res.reverse() 106 | try: 107 | if res and res[0].get("status") == 1: 108 | res.insert(1, session.query(Task).filter(Task.id == 1).first().to_dict()) 109 | else: 110 | res.insert(0, session.query(Task).filter(Task.id == 1).first().to_dict()) 111 | except Exception as e: 112 | logger.error(e) 113 | traceback.print_exc() 114 | return res 115 | 116 | 117 | @app.post("/run_task/") 118 | async def run_task(request: Request, task: TaskEntity): 119 | client_host: str = request.client.host 120 | port = task.port 121 | serialno = task.serialno 122 | package = task.package 123 | start_time = time.time() 124 | status = 0 125 | file_dir = os.path.join(BASE_CSV_DIR, client_host, str(int(start_time))) 126 | if not os.path.exists(file_dir): 127 | os.makedirs(file_dir) 128 | return_task_id = None 129 | with connect() as session: 130 | task_running_count = session.query(Task).filter(Task.host == client_host).filter(Task.port == port).filter( 131 | Task.status != 2).count() 132 | if task_running_count > 0: 133 | raise Exception("当然仍有任务在进行无法创建新任务") 134 | new_task = Task(host=client_host, port=port, serialno=serialno, start_time=datetime.datetime.now(), 135 | status=status, file_dir=file_dir, package=package) 136 | session.add(new_task) 137 | run_all_monitor(serialno, [client_host, port], package, file_dir) 138 | return_task_id = new_task.id 139 | return {"code": 200, "taskid": return_task_id} 140 | 141 | 142 | def run_all_monitor(serialno, server_addr: list, package, save_dir): 143 | task_process = TaskHandle(serialno=serialno, server_addr=server_addr, package=package, save_dir=save_dir) 144 | task_process.start() 145 | 146 | 147 | @app.get("/stop_task/") 148 | async def stop_task(request: Request, id: int): 149 | client_host: str = request.client.host 150 | with connect() as session: 151 | task_item = session.query(Task).filter(Task.id == id).filter(Task.host == client_host).first() 152 | try: 153 | proc = psutil.Process(task_item.pid) 154 | proc.kill() 155 | except Exception as e: 156 | logger.error(e) 157 | traceback.print_exc() 158 | task_item.status = 2 159 | task_item.end_time = datetime.datetime.now() 160 | return {"code": 200} 161 | 162 | 163 | @app.get("/get_task_status/") 164 | async def get_task_status(request: Request, id: int): 165 | client_host: str = request.client.host 166 | with connect() as session: 167 | task_item = session.query(Task).filter(Task.id == id).filter(Task.host == client_host).first() 168 | return task_item.to_dict() 169 | 170 | 171 | @app.get("/result/") 172 | async def result(request: Request, id: int): 173 | client_host: str = request.client.host 174 | with connect() as session: 175 | if int(id) == 1: 176 | task_item = session.query(Task).filter(Task.id == id).first() 177 | if "Windows" in platform.platform(): 178 | task_item.file_dir = task_item.file_dir.replace("/", "\\") 179 | _, relative_path = task_item.file_dir.split("test_result\\") 180 | else: 181 | task_item.file_dir = task_item.file_dir.replace("\\", "/") 182 | _, relative_path = task_item.file_dir.split("test_result/") 183 | parent = os.path.dirname(os.path.abspath(__file__)) 184 | base, _ = os.path.split(parent) 185 | task_item.file_dir = os.path.join(base, "test_result", relative_path) 186 | else: 187 | task_item = session.query(Task).filter(Task.id == id).filter(Task.host == client_host).first() 188 | try: 189 | result = DataCollect.read_data_all(task_item.file_dir) 190 | except BaseException as e: 191 | logger.error(e) 192 | traceback.print_exc() 193 | return {"result": {}} 194 | return {"result": result} 195 | 196 | 197 | @func_set_timeout(5) 198 | def adb_devices(adb): 199 | return adb.devices() 200 | 201 | 202 | @func_set_timeout(5) 203 | def adb_app_list(adb): 204 | return adb.list_app(third_only=True) 205 | 206 | 207 | if __name__ == "__main__": 208 | import uvicorn 209 | 210 | uvicorn.run(app, host="0.0.0.0", port=8000) 211 | -------------------------------------------------------------------------------- /start.bat: -------------------------------------------------------------------------------- 1 | python -m uvicorn performancetest.web.main:app --workers 2 --limit-max-requests 1000 --timeout-keep-alive 15 --limit-concurrency 1000 --proxy-headers --port 80 --host 0.0.0.0 2 | -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- 1 | python -m uvicorn performancetest.web.main:app --workers 2 --limit-max-requests 1000 --timeout-keep-alive 15 --limit-concurrency 1000 --proxy-headers --port 80 --host 0.0.0.0 2 | 3 | -------------------------------------------------------------------------------- /task.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qian316/app_performance/81f35ff715233d0a89a46feb25f2d693b4e0d926/task.sqlite --------------------------------------------------------------------------------