├── 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 |
4 | - 替代perfdog
5 | - 自带一个默认数据
6 | - 支持android/ios平台上应用的性能数据测试
7 | - 支持指标包含:cpu,memory,fps,gpu,温度,电量
8 | - fps指标中包含:jank,big_jank,增量耗时,等指标
9 | - 数据结果准确,与perfdog一致
10 | - 实时记录设备画面
11 | - 支持局域网内使用
12 |
13 | v1.1.0 目前平台展示:
14 |
15 |
16 | 
17 |
18 | 
19 |
20 |
21 | 
22 |
23 |
24 | 
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
--------------------------------------------------------------------------------