magnax 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- magnax/__init__.py +3 -0
- magnax/__main__.py +25 -0
- magnax/debug.py +65 -0
- magnax/public/__init__.py +1 -0
- magnax/public/adb/linux/adb +0 -0
- magnax/public/adb/linux_arm/adb +0 -0
- magnax/public/adb/mac/adb +0 -0
- magnax/public/adb/windows/AdbWinApi.dll +0 -0
- magnax/public/adb/windows/AdbWinUsbApi.dll +0 -0
- magnax/public/adb/windows/adb.exe +0 -0
- magnax/public/adb.py +96 -0
- magnax/public/android_fps.py +750 -0
- magnax/public/apm.py +1306 -0
- magnax/public/apm_pk.py +184 -0
- magnax/public/common.py +1598 -0
- magnax/public/config.json +1 -0
- magnax/public/ios_perf_adapter.py +790 -0
- magnax/public/report_template/android.html +526 -0
- magnax/public/report_template/ios.html +482 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/AdbWinApi.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/AdbWinUsbApi.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/SDL2.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/adb.exe +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/avcodec-60.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/avformat-60.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/avutil-58.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/icon.png +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/libusb-1.0.dll +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/open_a_terminal_here.bat +1 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/scrcpy-console.bat +2 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/scrcpy-noconsole.vbs +7 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/scrcpy-server +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/scrcpy.exe +0 -0
- magnax/public/scrcpy/scrcpy-win32-v2.4/swresample-4.dll +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/AdbWinApi.dll +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/AdbWinUsbApi.dll +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/SDL2.dll +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/avformat-60.dll +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/avutil-58.dll +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/open_a_terminal_here.bat +1 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/scrcpy-noconsole.vbs +7 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/scrcpy-server +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/scrcpy.exe +0 -0
- magnax/public/scrcpy/scrcpy-win64-v2.4/swresample-4.dll +0 -0
- magnax/static/css/highlight.min.css +9 -0
- magnax/static/css/magnax-dark-theme.css +1237 -0
- magnax/static/css/select2-bootstrap-5-theme.min.css +3 -0
- magnax/static/css/select2-bootstrap-5-theme.rtl.min.css +3 -0
- magnax/static/css/select2.min.css +1 -0
- magnax/static/css/sweetalert2.min.css +1 -0
- magnax/static/css/tabler.demo.min.css +9 -0
- magnax/static/css/tabler.min.css +14 -0
- magnax/static/image/500.png +0 -0
- magnax/static/image/avatar.png +0 -0
- magnax/static/image/empty.png +0 -0
- magnax/static/image/readme/home.png +0 -0
- magnax/static/image/readme/pk.png +0 -0
- magnax/static/js/apexcharts.js +14 -0
- magnax/static/js/gray.js +16 -0
- magnax/static/js/highlight.min.js +1173 -0
- magnax/static/js/highstock.js +803 -0
- magnax/static/js/html2canvas.min.js +20 -0
- magnax/static/js/jquery.min.js +2 -0
- magnax/static/js/magnax-chart-theme.js +492 -0
- magnax/static/js/select2.min.js +2 -0
- magnax/static/js/sweetalert2.min.js +1 -0
- magnax/static/js/tabler.demo.min.js +9 -0
- magnax/static/js/tabler.min.js +9 -0
- magnax/static/logo/logo.png +0 -0
- magnax/templates/404.html +30 -0
- magnax/templates/analysis.html +1375 -0
- magnax/templates/analysis_compare.html +600 -0
- magnax/templates/analysis_pk.html +680 -0
- magnax/templates/base.html +365 -0
- magnax/templates/index.html +2471 -0
- magnax/templates/pk.html +743 -0
- magnax/templates/report.html +416 -0
- magnax/view/__init__.py +1 -0
- magnax/view/apis.py +952 -0
- magnax/view/pages.py +146 -0
- magnax/web.py +345 -0
- magnax-1.0.0.dist-info/METADATA +242 -0
- magnax-1.0.0.dist-info/RECORD +87 -0
- magnax-1.0.0.dist-info/WHEEL +5 -0
- magnax-1.0.0.dist-info/entry_points.txt +2 -0
- magnax-1.0.0.dist-info/licenses/LICENSE +21 -0
- magnax-1.0.0.dist-info/top_level.txt +1 -0
magnax/templates/pk.html
ADDED
|
@@ -0,0 +1,743 @@
|
|
|
1
|
+
{% extends 'base.html' %}
|
|
2
|
+
|
|
3
|
+
{% block title %}SoloX - {% if lan == 'cn' %} 比对模式 {% else %} PK Mode {% endif %}{% endblock %}
|
|
4
|
+
|
|
5
|
+
{% block css %}{% endblock %}
|
|
6
|
+
|
|
7
|
+
{% block page_title %}
|
|
8
|
+
{% if model == '2-devices' %}
|
|
9
|
+
<a class="btn btn-primary" href="/pk?model=2-devices&lan={{ lan }}">
|
|
10
|
+
<svg t="1638090687049" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="186695" width="200" height="200"><path d="M213.33 128.002c-11.782 0-21.328 9.546-21.328 21.328v42.672c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328V149.33c0-11.782-9.562-21.328-21.344-21.328zM213.33 234.674c-11.782 0-21.328 9.546-21.328 21.328v85.328c0 11.782 9.546 21.344 21.328 21.344s21.344-9.562 21.344-21.344v-85.328c0-11.782-9.562-21.328-21.344-21.328zM213.33 384.002c-11.782 0-21.328 9.546-21.328 21.326v85.344c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328v-85.344c0-11.78-9.562-21.326-21.344-21.326z" fill="#434A54" p-id="186696"></path><path d="M810.686 256.002c-11.812 0-21.376 9.546-21.376 21.328v85.344c0 11.782 9.562 21.328 21.376 21.328 11.75 0 21.312-9.546 21.312-21.328v-85.344c0-11.782-9.562-21.328-21.312-21.328zM298.674 1002.652c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324c0 35.31-28.688 63.998-64 63.998H298.674z" fill="#434A54" p-id="186697"></path><path d="M234.674 149.33h554.636v682.668H234.674z" fill="#5D9CEC" p-id="186698"></path><path d="M725.31 0.004H298.674c-47.14 0-85.344 38.204-85.344 85.326v853.324c0 47.124 38.204 85.342 85.344 85.342h426.636c47.156 0 85.376-38.218 85.376-85.342V85.33c0-47.122-38.22-85.326-85.376-85.326z m64 938.65c0 35.31-28.688 63.998-64 63.998H298.674c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324z" fill="#656D78" p-id="186699"></path><path d="M512 853.342c-35.344 0-64 28.656-64 64s28.656 63.998 64 63.998c35.342 0 64-28.654 64-63.998s-28.656-64-64-64z m0 85.312c-11.766 0-21.328-9.562-21.328-21.312 0-11.782 9.562-21.344 21.328-21.344 11.764 0 21.328 9.562 21.328 21.344 0 11.75-9.562 21.312-21.328 21.312z" fill="#656D78" p-id="186700"></path><path d="M426.672 85.33c0 11.782-9.562 21.344-21.344 21.344S384 97.112 384 85.33s9.546-21.328 21.328-21.328 21.344 9.546 21.344 21.328z" fill="#5D9CEC" p-id="186701"></path><path d="M554.688 64.002h-85.358c-11.782 0-21.328 9.546-21.328 21.328s9.546 21.344 21.328 21.344h85.358c11.75 0 21.312-9.562 21.312-21.344s-9.562-21.328-21.312-21.328z" opacity=".2" p-id="186702"></path><path d="M509.33 832.216h-122.658l128.002-682.886h122.638z" fill="#FFFFFF" opacity=".1" p-id="186703"></path></svg>
|
|
11
|
+
{% if lan == 'cn' %} 设备比对 {% else %} 2-Devices {% endif %}
|
|
12
|
+
</a>
|
|
13
|
+
<a class="btn btn-default" href="/pk?model=2-app&lan={{ lan }}" style="margin-left: 10px">
|
|
14
|
+
<svg t="1645171258689" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2225" width="2000" height="2000"><path d="M352 96H224c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h192c35.2 0 64-28.8 64-64V224c0-70.4-57.6-128-128-128z m64 319.9l-0.1 0.1H224c-17 0-33-6.7-45.1-18.9S160 369 160 352V224c0-17 6.7-33 18.9-45.1S207 160 224 160h128c17 0 33 6.7 45.1 18.9S416 207 416 224v191.9zM800 96H672c-70.4 0-128 57.6-128 128v192c0 35.2 28.8 64 64 64h192c70.4 0 128-57.6 128-128V224c0-70.4-57.6-128-128-128z m64 256c0 17-6.7 33-18.9 45.1S817 416 800 416H608.1l-0.1-0.1V224c0-17 6.7-33 18.9-45.1S655 160 672 160h128c17 0 33 6.7 45.1 18.9S864 207 864 224v128zM416 544H224c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h128c70.4 0 128-57.6 128-128V608c0-35.2-28.8-64-64-64z m0 256c0 17-6.7 33-18.9 45.1S369 864 352 864H224c-17 0-33-6.7-45.1-18.9S160 817 160 800V672c0-17 6.7-33 18.9-45.1S207 608 224 608h191.9l0.1 0.1V800zM800 544H608c-35.2 0-64 28.8-64 64v192c0 70.4 57.6 128 128 128h128c70.4 0 128-57.6 128-128V672c0-70.4-57.6-128-128-128z m64 256c0 17-6.7 33-18.9 45.1S817 864 800 864H672c-17 0-33-6.7-45.1-18.9S608 817 608 800V608.1l0.1-0.1H800c17 0 33 6.7 45.1 18.9S864 655 864 672v128z" fill="#1875F0" p-id="2226"></path></svg>
|
|
15
|
+
{% if lan == 'cn' %} APP比对 {% else %} 2-APP {% endif %}
|
|
16
|
+
</a>
|
|
17
|
+
{% elif model == '2-app' %}
|
|
18
|
+
<a class="btn btn-default" href="/pk?model=2-devices&lan={{ lan }}">
|
|
19
|
+
<svg t="1638090687049" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="186695" width="200" height="200"><path d="M213.33 128.002c-11.782 0-21.328 9.546-21.328 21.328v42.672c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328V149.33c0-11.782-9.562-21.328-21.344-21.328zM213.33 234.674c-11.782 0-21.328 9.546-21.328 21.328v85.328c0 11.782 9.546 21.344 21.328 21.344s21.344-9.562 21.344-21.344v-85.328c0-11.782-9.562-21.328-21.344-21.328zM213.33 384.002c-11.782 0-21.328 9.546-21.328 21.326v85.344c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328v-85.344c0-11.78-9.562-21.326-21.344-21.326z" fill="#434A54" p-id="186696"></path><path d="M810.686 256.002c-11.812 0-21.376 9.546-21.376 21.328v85.344c0 11.782 9.562 21.328 21.376 21.328 11.75 0 21.312-9.546 21.312-21.328v-85.344c0-11.782-9.562-21.328-21.312-21.328zM298.674 1002.652c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324c0 35.31-28.688 63.998-64 63.998H298.674z" fill="#434A54" p-id="186697"></path><path d="M234.674 149.33h554.636v682.668H234.674z" fill="#5D9CEC" p-id="186698"></path><path d="M725.31 0.004H298.674c-47.14 0-85.344 38.204-85.344 85.326v853.324c0 47.124 38.204 85.342 85.344 85.342h426.636c47.156 0 85.376-38.218 85.376-85.342V85.33c0-47.122-38.22-85.326-85.376-85.326z m64 938.65c0 35.31-28.688 63.998-64 63.998H298.674c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324z" fill="#656D78" p-id="186699"></path><path d="M512 853.342c-35.344 0-64 28.656-64 64s28.656 63.998 64 63.998c35.342 0 64-28.654 64-63.998s-28.656-64-64-64z m0 85.312c-11.766 0-21.328-9.562-21.328-21.312 0-11.782 9.562-21.344 21.328-21.344 11.764 0 21.328 9.562 21.328 21.344 0 11.75-9.562 21.312-21.328 21.312z" fill="#656D78" p-id="186700"></path><path d="M426.672 85.33c0 11.782-9.562 21.344-21.344 21.344S384 97.112 384 85.33s9.546-21.328 21.328-21.328 21.344 9.546 21.344 21.328z" fill="#5D9CEC" p-id="186701"></path><path d="M554.688 64.002h-85.358c-11.782 0-21.328 9.546-21.328 21.328s9.546 21.344 21.328 21.344h85.358c11.75 0 21.312-9.562 21.312-21.344s-9.562-21.328-21.312-21.328z" opacity=".2" p-id="186702"></path><path d="M509.33 832.216h-122.658l128.002-682.886h122.638z" fill="#FFFFFF" opacity=".1" p-id="186703"></path></svg>
|
|
20
|
+
{% if lan == 'cn' %} 设备比对 {% else %} 2-Devices {% endif %}
|
|
21
|
+
</a>
|
|
22
|
+
<a class="btn btn-primary" style="margin-left: 10px" href="/pk?model=2-app&lan={{ lan }}">
|
|
23
|
+
<svg t="1661855715412" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="25040" width="2000" height="2000"><path d="M458.666667 565.333333v298.666667h-298.666667v-298.666667h298.666667z m426.666666 0v298.666667h-298.666666v-298.666667h298.666666z m-490.666666 64h-170.666667v170.666667h170.666667v-170.666667z m426.666666 0h-170.666666v170.666667h170.666666v-170.666667z m-362.666666-490.666666v298.666666h-298.666667v-298.666666h298.666667z m426.666666 0v298.666666h-298.666666v-298.666666h298.666666z m-490.666666 64h-170.666667v170.666666h170.666667v-170.666666z m426.666666 0h-170.666666v170.666666h170.666666v-170.666666z" fill="#ffffff" p-id="25041"></path></svg>
|
|
24
|
+
{% if lan == 'cn' %} APP比对 {% else %} 2-APP {% endif %}
|
|
25
|
+
</a>
|
|
26
|
+
{% endif %}
|
|
27
|
+
{% endblock %}
|
|
28
|
+
|
|
29
|
+
{% block navbar_nav %}
|
|
30
|
+
<ul class="navbar-nav">
|
|
31
|
+
<li class="nav-item active" id="apm_tab" style="margin-left: 20px;font-weight: bolder;">
|
|
32
|
+
<a class="nav-link" href="/?platform=Android&lan={{ lan }}" >
|
|
33
|
+
<span class="nav-link-icon d-md-none d-lg-inline-block">
|
|
34
|
+
<svg t="1635060342196" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="82258" width="200" height="200"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#FBD000" p-id="82259"></path><path d="M949.6 848H92.8c-4.8 0-8-3.2-8-8s3.2-8 8-8h856.8c4.8 0 8 3.2 8 8s-4 8-8 8z" fill="#074370" p-id="82260"></path><path d="M903.2 776c0 35.2-28.8 64-64 64H203.2c-35.2 0-64-28.8-64-64V293.6c0-35.2 28.8-64 64-64h636c35.2 0 64 28.8 64 64V776z" fill="#415E6D" p-id="82261"></path><path d="M839.2 797.6H203.2c-35.2 0-64-28.8-64-64V776c0 35.2 28.8 64 64 64h636c35.2 0 64-28.8 64-64v-42.4c0 35.2-28.8 64-64 64z" fill="#324D5B" p-id="82262"></path><path d="M839.2 229.6H203.2c-35.2 0-64 28.8-64 64V728h764V293.6c0-35.2-28.8-64-64-64z" fill="#EAEAEA" p-id="82263"></path><path d="M901.6 736H144c-4.8 0-8-3.2-8-8s3.2-8 8-8h757.6c4.8 0 8 3.2 8 8s-4 8-8 8z" fill="#074370" p-id="82264"></path><path d="M816 784m-24 0a24 24 0 1 0 48 0 24 24 0 1 0-48 0Z" fill="#28A5C6" p-id="82265"></path><path d="M216 784m-16 0a16 16 0 1 0 32 0 16 16 0 1 0-32 0Z" fill="#3AD0F9" p-id="82266"></path><path d="M280 784m-16 0a16 16 0 1 0 32 0 16 16 0 1 0-32 0Z" fill="#FF4848" p-id="82267"></path><path d="M344 784m-16 0a16 16 0 1 0 32 0 16 16 0 1 0-32 0Z" fill="#75B600" p-id="82268"></path><path d="M408 784m-16 0a16 16 0 1 0 32 0 16 16 0 1 0-32 0Z" fill="#FFFFFF" p-id="82269"></path><path d="M904 592h-72c-4.8 0-8-3.2-8-8s4-8 8-8h71.2c4.8 0 8 3.2 8 8s-3.2 8-7.2 8zM639.2 664c-3.2 0-6.4-2.4-8-5.6L592 523.2l-14.4 63.2c-0.8 4-4 6.4-8 6.4H391.2c-4 0-7.2-2.4-8-6.4l-21.6-119.2-17.6 73.6c-0.8 4-5.6 7.2-9.6 5.6-4-0.8-7.2-5.6-5.6-9.6L355.2 424c0.8-4 4-6.4 8-6.4s7.2 3.2 8 6.4l27.2 152h166.4L584 488.8c0.8-3.2 4-8.8 8-8.8s6.4 4.8 8 8.8l38.4 132.8 40.8-224.8c0.8-4 4-6.4 8-6.4s7.2 2.4 8 6.4L732 576h76c4.8 0 8 3.2 8 8s-3.2 8-8 8H725.6c-4 0-7.2-2.4-8-6.4l-30.4-146.4-40 218.4c-0.8 3.2-4 6.4-8 6.4 0.8 0 0.8 0 0 0zM305.6 680c-4 0-7.2-2.4-8-6.4L268 536l-15.2 50.4c-0.8 3.2-4 5.6-8 5.6H146.4c-4.8 0-8-3.2-8-8s3.2-8 8-8h92.8l22.4-74.4c0.8-3.2 4.8-5.6 8-5.6 4 0 6.4 2.4 7.2 6.4l28.8 132.8 11.2-47.2c0.8-4 5.6-7.2 9.6-5.6 4 0.8 7.2 5.6 5.6 9.6l-19.2 82.4c0 3.2-4 5.6-7.2 5.6z" fill="#074370" p-id="82270"></path><path d="M776 304h-56c-4.8 0-8-3.2-8-8s3.2-8 8-8h56c4.8 0 8 3.2 8 8s-3.2 8-8 8zM672 304H488c-4 0-8-3.2-8-8s3.2-8 8-8h184c4 0 8 3.2 8 8s-3.2 8-8 8zM424 304H224c-4.8 0-8-3.2-8-8s4-8 8-8h200c4.8 0 8 3.2 8 8s-4 8-8 8zM711.2 344H584c-4.8 0-8-3.2-8-8s3.2-8 8-8h127.2c4.8 0 8 3.2 8 8s-3.2 8-8 8zM528 344H224c-4.8 0-8-3.2-8-8s4-8 8-8h304c4.8 0 8 3.2 8 8s-4 8-8 8z" fill="#ADADAD" p-id="82271"></path><path d="M840 848H200c-40 0-72-32-72-72V296c0-40 32-72 72-72h640c40 0 72 32 72 72v480c0 40-32 72-72 72zM200 240c-31.2 0-56 24.8-56 56v480c0 31.2 24.8 56 56 56h640c31.2 0 56-24.8 56-56V296c0-31.2-24.8-56-56-56H200z" fill="#074370" p-id="82272"></path><path d="M864 553.6c-4.8 0-8-3.2-8-8v-80c0-4.8 3.2-8 8-8s8 3.2 8 8v80c0 4.8-3.2 8-8 8zM864 425.6c-4.8 0-8-3.2-8-8V312c0-22.4-17.6-40-40-40H408c-4.8 0-8-3.2-8-8s3.2-8 8-8h408c31.2 0 56 24.8 56 56v105.6c0 4.8-3.2 8-8 8zM345.6 272H224c-4.8 0-8-3.2-8-8s3.2-8 8-8h121.6c4.8 0 8 3.2 8 8s-4 8-8 8zM64 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z m0-48c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zM656 176c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z m0-48c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zM474.4 124c0-3.2-3.2-6.4-8-7.2l-15.2-2.4c-4-0.8-8.8-4.8-8.8-8.8l-2.4-15.2c-0.8-4-4-8-7.2-8s-6.4 3.2-7.2 8l-2.4 15.2c-0.8 4-4.8 8.8-8.8 8.8l-15.2 2.4c-4 0.8-8 4-8 7.2s3.2 6.4 8 7.2l15.2 2.4c4 0.8 8.8 4.8 8.8 8.8l2.4 15.2c0.8 4 4 8 7.2 8s6.4-3.2 7.2-8l2.4-16.8c0.8-4 4.8-8 8.8-8.8l14.4-0.8c5.6-1.6 8.8-4 8.8-7.2zM502.4 928c0-3.2-3.2-6.4-8-7.2l-15.2-2.4c-4-0.8-8.8-4.8-8.8-8.8l-2.4-15.2c-0.8-4-4-8-7.2-8s-6.4 3.2-7.2 8l-2.4 15.2c-0.8 4-4.8 8.8-8.8 8.8l-15.2 2.4c-4 0.8-8 4-8 7.2s3.2 6.4 8 7.2l15.2 2.4c4 0.8 8.8 4.8 8.8 8.8l2.4 15.2c0.8 4 4 8 7.2 8s6.4-3.2 7.2-8l2.4-16.8c0.8-4 4.8-8 8.8-8.8l14.4-0.8c5.6-1.6 8.8-4 8.8-7.2z" fill="#FFFFFF" p-id="82273"></path></svg>
|
|
35
|
+
</span>
|
|
36
|
+
<span class="nav-link-title strong-text">{% if lan == 'cn' %} 性能测试 {% else %} APM {% endif %}</span>
|
|
37
|
+
</a>
|
|
38
|
+
</li>
|
|
39
|
+
<li class="nav-item" id="report_tab" style="margin-left: 20px;font-weight: bolder;">
|
|
40
|
+
<a class="nav-link" href="/report?lan={{ lan }}" >
|
|
41
|
+
<span class="nav-link-icon d-md-none d-lg-inline-block">
|
|
42
|
+
<svg t="1643364122000" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29349" width="300" height="300"><path d="M777 806.7c0 38.7-31.1 70.3-69.7 70.3H225.9c-38.7 0-69.9-31.6-69.9-70.3V174.4c0-38.7 31.2-70.4 69.9-70.4h481.4c38.7 0 69.7 31.7 69.7 70.4v632.3z" fill="#FFFFFF" p-id="29350"></path><path d="M707.3 886H225.9c-43.5 0-78.9-35.8-78.9-79.3V174.4c0-43.5 35.4-79.4 78.9-79.4h481.4c43.5 0 79.7 35.9 79.7 79.4v632.3c0 43.5-36.2 79.3-79.7 79.3zM225.9 113c-33.7 0-59.9 27.7-59.9 61.4v632.3c0 33.7 26.2 61.3 59.9 61.3h481.4c33.7 0 60.7-27.6 60.7-61.3V174.4c0-33.7-27-61.4-60.7-61.4H225.9z" fill="#282828" p-id="29351"></path><path d="M732 763.1c0 33.3-26.1 60.9-59.4 60.9H251.7c-33.3 0-59.7-27.6-59.7-60.9V226.9c0-33.3 26.4-60.9 59.7-60.9h420.9c33.3 0 59.4 27.5 59.4 60.9v536.2z" fill="#50BCFF" p-id="29352"></path><path d="M361.8 251.9H208.6c-4.9 0-8.9-4-8.9-8.9s4-8.9 8.9-8.9h153.1c4.9 0 8.9 4 8.9 8.9s-3.9 8.9-8.8 8.9zM549.2 313H208.6c-4.9 0-8.9-4-8.9-8.9s4-8.9 8.9-8.9h340.5c4.9 0 8.9 4 8.9 8.9s-3.9 8.9-8.8 8.9zM652 448.4H208.6c-4.9 0-8.9-4-8.9-8.9s4-8.9 8.9-8.9H652c4.9 0 8.9 4 8.9 8.9s-4 8.9-8.9 8.9zM588.4 515.8H208.6c-4.9 0-8.9-4-8.9-8.9s4-8.9 8.9-8.9h379.7c4.9 0 8.9 4 8.9 8.9 0.1 4.9-3.9 8.9-8.8 8.9z" fill="#282828" p-id="29353"></path><path d="M673.3 113.3c0 19.6-15.9 35.5-35.5 35.5h-346c-19.6 0-35.5-15.9-35.5-35.5v-6.7c0-19.6 15.9-35.5 35.5-35.5h346c19.6 0 35.5 15.9 35.5 35.5v6.7z" fill="#1A6DFF" p-id="29354"></path><path d="M637.8 157.6h-346c-24.5 0-44.4-19.9-44.4-44.4v-6.7c0-24.5 19.9-44.4 44.4-44.4h346c24.5 0 44.4 19.9 44.4 44.4v6.7c0 24.5-19.9 44.4-44.4 44.4zM291.9 80c-14.7 0-26.6 11.9-26.6 26.6v6.7c0 14.7 11.9 26.6 26.6 26.6h346c14.7 0 26.6-11.9 26.6-26.6v-6.7c0-14.7-11.9-26.6-26.6-26.6h-346z" fill="#282828" p-id="29355"></path><path d="M849.7 758.4c0 106.3-86.2 192.4-192.4 192.4-106.3 0-192.4-86.2-192.4-192.4C464.8 652.1 551 566 657.3 566c106.2 0 192.4 86.1 192.4 192.4z" fill="#FFFFFF" p-id="29356"></path><path d="M657.3 959.7c-111 0-201.3-90.3-201.3-201.3s90.3-201.3 201.3-201.3 201.3 90.3 201.3 201.3-90.3 201.3-201.3 201.3z m0-384.8c-101.2 0-183.5 82.3-183.5 183.5S556.1 942 657.3 942s183.6-82.3 183.6-183.6c-0.1-101.2-82.4-183.5-183.6-183.5z" fill="#282828" p-id="29357"></path><path d="M657.3 553.6v204.9h203.6c-0.2-112.7-91.2-204-203.6-204.9z" fill="#1A6DFF" p-id="29358"></path><path d="M860.9 767.3H657.3c-4.9 0-8.9-4-8.9-8.9V553.6c0-2.4 0.9-4.6 2.6-6.3 1.7-1.7 3.6-2.4 6.3-2.6 116.9 0.9 212.2 96.8 212.4 213.7 0 2.4-0.9 4.6-2.6 6.3-1.6 1.7-3.9 2.6-6.2 2.6z m-194.8-17.8h185.6C847 649.3 766.2 568 666.1 562.7v186.8z" fill="#282828" p-id="29359"></path><path d="M794.1 903.7c-2.3 0-4.6-0.9-6.3-2.6L652.1 764.7c-3.5-3.5-3.4-9.1 0-12.6 3.5-3.5 9.1-3.4 12.6 0l135.7 136.5c3.5 3.5 3.4 9.1 0 12.6-1.8 1.7-4 2.5-6.3 2.5z" fill="#282828" p-id="29360"></path></svg>
|
|
43
|
+
</span>
|
|
44
|
+
<span class="nav-link-title strong-text">{% if lan == 'cn' %} 报告管理 {% else %} Report {% endif %}</span>
|
|
45
|
+
</a>
|
|
46
|
+
</li>
|
|
47
|
+
</ul>
|
|
48
|
+
{% endblock %}
|
|
49
|
+
|
|
50
|
+
{% block ms_auto %}
|
|
51
|
+
<div class="ms-auto d-print-none col-auto">
|
|
52
|
+
<a class="btn btn-default" id="debug-connect">
|
|
53
|
+
<svg t="1638091545450" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="231707" width="200" height="200"><path d="M207.67511 241.617978v295.694382c0 15.532584 4.602247 31.065169 13.231461 43.721348L296.268369 676.530337c13.806742 20.134831 36.242697 32.21573 60.404494 32.21573h109.303371c24.161798 0 46.597753-12.080899 60.404494-32.21573L601.742526 581.033708c8.629213-12.65618 13.231461-28.188764 13.231461-43.721348V241.617978H207.67511z" fill="#4988FD" p-id="231708"></path><path d="M253.122301 4.026966h317.555056V241.617978H253.122301z" fill="#C5DCFA" p-id="231709"></path><path d="M344.016683 184.089888c-9.204494 0-16.683146-7.478652-16.683146-16.683146V83.41573c0-9.204494 7.478652-16.683146 16.683146-16.683146 9.204494 0 16.683146 7.478652 16.683146 16.683146v83.991012c0 9.204494-7.478652 16.683146-16.683146 16.683146zM476.906571 184.089888c-9.204494 0-16.683146-7.478652-16.683146-16.683146V83.41573c0-9.204494 7.478652-16.683146 16.683146-16.683146 9.204494 0 16.683146 7.478652 16.683146 16.683146v83.991012c0 9.204494-7.478652 16.683146-16.683146 16.683146z" fill="#FFFFFF" p-id="231710"></path><path d="M606.344773 1023.424719c-118.507865 0-214.579775-96.07191-214.579775-214.579775v-28.188764c0-12.080899 9.779775-21.860674 21.860674-21.860674 12.080899 0 21.860674 9.779775 21.860674 21.860674v28.188764c0 93.770787 76.51236 170.283146 170.283146 170.283146s170.283146-76.51236 170.283146-170.283146v-231.262922c0-12.080899 9.779775-21.860674 21.860674-21.860674 12.080899 0 21.860674 9.779775 21.860675 21.860674v231.262922c0.575281 118.507865-95.496629 214.579775-213.429214 214.579775z" fill="#C5DCFA" p-id="231711"></path><path d="M439.513312 780.65618h-52.925842c-12.65618 0-23.011236-10.355056-23.011236-23.011236v-48.898877h98.373033v48.898877c0.575281 12.65618-9.779775 23.011236-22.435955 23.011236z" fill="#2767F4" p-id="231712"></path><path d="M411.899829 604.620225c-9.204494 0-16.683146-7.478652-16.683146-16.683146V335.388764c0-9.204494 7.478652-16.683146 16.683146-16.683146 9.204494 0 16.683146 7.478652 16.683146 16.683146v252.548315c-0.575281 9.779775-7.478652 16.683146-16.683146 16.683146z" fill="#FFFFFF" p-id="231713"></path><path d="M411.899829 528.683146c-3.451685 0-7.478652-1.150562-10.355056-4.026966l-65.582022-54.651686c-4.026966-2.876404-5.752809-8.053933-5.752809-12.656179v-54.076405c0-9.204494 7.478652-16.683146 16.683146-16.683146 9.204494 0 16.683146 7.478652 16.683146 16.683146v46.597753L422.830166 499.34382c6.903371 5.752809 8.053933 16.107865 2.301124 23.586517-4.026966 4.026966-8.629213 5.752809-13.231461 5.752809z" fill="#FFFFFF" p-id="231714"></path><path d="M411.899829 480.934831c-4.602247 0-9.204494-1.725843-12.65618-5.752809-5.752809-6.903371-5.177528-17.258427 1.725843-23.586516l60.979775-51.775281V362.426966c0-9.204494 7.478652-16.683146 16.683146-16.683146 9.204494 0 16.683146 7.478652 16.683147 16.683146v44.87191c0 4.602247-2.301124 9.204494-5.752809 12.65618L422.830166 476.907865c-3.451685 2.876404-7.478652 4.026966-10.930337 4.026966z" fill="#FFFFFF" p-id="231715"></path></svg>
|
|
54
|
+
{% if lan == 'cn' %} 连接 {% else %} Connect {% endif %}
|
|
55
|
+
</a>
|
|
56
|
+
</div>
|
|
57
|
+
<div class="ms-auto d-print-none col-auto">
|
|
58
|
+
<div class="btn-list apm-btn-list">
|
|
59
|
+
<a id="run-apm" class="btn btn-default">
|
|
60
|
+
<svg t="1647757457022" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="21859" width="200" height="200"><path d="M511.4 512.1m-448 0a448 448 0 1 0 896 0 448 448 0 1 0-896 0Z" fill="#006DFC" p-id="21860"></path><path d="M658.4 555.6L475.5 661.1c-33.4 19.3-75-4.8-75-43.3V406.6c0-38.5 41.7-62.6 75-43.3l182.9 105.6c33.3 19.3 33.3 67.4 0 86.7z" fill="#FFFFFF" p-id="21861"></path></svg>
|
|
61
|
+
{% if lan == 'cn' %} 开始 {% else %} Start {% endif %}
|
|
62
|
+
</a>
|
|
63
|
+
<a id="stop-apm" class="btn btn-default" style="display: none">
|
|
64
|
+
<svg t="1638096947956" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="235254" width="200" height="200"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#EE827F" p-id="235255"></path><path d="M512 512m-443.191534 0a443.191534 443.191534 0 1 0 886.383068 0 443.191534 443.191534 0 1 0-886.383068 0Z" fill="#E64537" p-id="235256"></path><path d="M0 512C0 794.638448 229.180952 1023.8194 512 1023.8194V0C229.180952 0 0 229.180952 0 512z" fill="#FEFFFF" opacity=".1" p-id="235257"></path><path d="M477.866667 683.208466H375.647266c-1.083598 0-1.986596-0.902998-1.986596-1.986597V342.597531c0-1.083598 0.902998-1.986596 1.986596-1.986596h102.4c1.083598 0 1.986596 0.902998 1.986596 1.986596v338.443739c-0.1806 1.264198-1.083598 2.167196-2.167195 2.167196zM648.352734 683.208466h-102.4c-1.083598 0-1.986596-0.902998-1.986596-1.986597V342.597531c0-1.083598 0.902998-1.986596 1.986596-1.986596H648.352734c1.083598 0 1.986596 0.902998 1.986596 1.986596v338.443739c0 1.264198-0.902998 2.167196-1.986596 2.167196z" fill="#FFFFFF" p-id="235258"></path></svg>
|
|
65
|
+
{% if lan == 'cn' %} 停止 {% else %} Stop {% endif %}
|
|
66
|
+
</a>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
{% endblock %}
|
|
70
|
+
|
|
71
|
+
{% block page_body %}
|
|
72
|
+
<div class="row">
|
|
73
|
+
<div class="apm-info" style="width: 25%">
|
|
74
|
+
<div class="dropdown-menu dropdown-menu-demo">
|
|
75
|
+
<h6 class="dropdown-header">{% if lan == 'cn' %} 设备信息 {% else %} Device Info {% endif %}</h6>
|
|
76
|
+
{% if model == '2-devices' %}
|
|
77
|
+
<div class="input-group mb-3 mt-2" style="width: 93%;margin-left: 10px;">
|
|
78
|
+
<div class="input-group-text">
|
|
79
|
+
<svg t="1638090687049" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="186695" width="200" height="200"><path d="M213.33 128.002c-11.782 0-21.328 9.546-21.328 21.328v42.672c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328V149.33c0-11.782-9.562-21.328-21.344-21.328zM213.33 234.674c-11.782 0-21.328 9.546-21.328 21.328v85.328c0 11.782 9.546 21.344 21.328 21.344s21.344-9.562 21.344-21.344v-85.328c0-11.782-9.562-21.328-21.344-21.328zM213.33 384.002c-11.782 0-21.328 9.546-21.328 21.326v85.344c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328v-85.344c0-11.78-9.562-21.326-21.344-21.326z" fill="#434A54" p-id="186696"></path><path d="M810.686 256.002c-11.812 0-21.376 9.546-21.376 21.328v85.344c0 11.782 9.562 21.328 21.376 21.328 11.75 0 21.312-9.546 21.312-21.328v-85.344c0-11.782-9.562-21.328-21.312-21.328zM298.674 1002.652c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324c0 35.31-28.688 63.998-64 63.998H298.674z" fill="#434A54" p-id="186697"></path><path d="M234.674 149.33h554.636v682.668H234.674z" fill="#5D9CEC" p-id="186698"></path><path d="M725.31 0.004H298.674c-47.14 0-85.344 38.204-85.344 85.326v853.324c0 47.124 38.204 85.342 85.344 85.342h426.636c47.156 0 85.376-38.218 85.376-85.342V85.33c0-47.122-38.22-85.326-85.376-85.326z m64 938.65c0 35.31-28.688 63.998-64 63.998H298.674c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324z" fill="#656D78" p-id="186699"></path><path d="M512 853.342c-35.344 0-64 28.656-64 64s28.656 63.998 64 63.998c35.342 0 64-28.654 64-63.998s-28.656-64-64-64z m0 85.312c-11.766 0-21.328-9.562-21.328-21.312 0-11.782 9.562-21.344 21.328-21.344 11.764 0 21.328 9.562 21.328 21.344 0 11.75-9.562 21.312-21.328 21.312z" fill="#656D78" p-id="186700"></path><path d="M426.672 85.33c0 11.782-9.562 21.344-21.344 21.344S384 97.112 384 85.33s9.546-21.328 21.328-21.328 21.344 9.546 21.344 21.328z" fill="#5D9CEC" p-id="186701"></path><path d="M554.688 64.002h-85.358c-11.782 0-21.328 9.546-21.328 21.328s9.546 21.344 21.328 21.344h85.358c11.75 0 21.312-9.562 21.312-21.344s-9.562-21.328-21.312-21.328z" opacity=".2" p-id="186702"></path><path d="M509.33 832.216h-122.658l128.002-682.886h122.638z" fill="#FFFFFF" opacity=".1" p-id="186703"></path></svg>
|
|
80
|
+
1
|
|
81
|
+
</div>
|
|
82
|
+
<input type="text" class="form-control device1" placeholder="No device found" disabled>
|
|
83
|
+
</div>
|
|
84
|
+
<div class="input-group mb-3 mt-2" style="width: 93%;margin-left: 10px;">
|
|
85
|
+
<div class="input-group-text">
|
|
86
|
+
<svg t="1638090687049" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="186695" width="200" height="200"><path d="M213.33 128.002c-11.782 0-21.328 9.546-21.328 21.328v42.672c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328V149.33c0-11.782-9.562-21.328-21.344-21.328zM213.33 234.674c-11.782 0-21.328 9.546-21.328 21.328v85.328c0 11.782 9.546 21.344 21.328 21.344s21.344-9.562 21.344-21.344v-85.328c0-11.782-9.562-21.328-21.344-21.328zM213.33 384.002c-11.782 0-21.328 9.546-21.328 21.326v85.344c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328v-85.344c0-11.78-9.562-21.326-21.344-21.326z" fill="#434A54" p-id="186696"></path><path d="M810.686 256.002c-11.812 0-21.376 9.546-21.376 21.328v85.344c0 11.782 9.562 21.328 21.376 21.328 11.75 0 21.312-9.546 21.312-21.328v-85.344c0-11.782-9.562-21.328-21.312-21.328zM298.674 1002.652c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324c0 35.31-28.688 63.998-64 63.998H298.674z" fill="#434A54" p-id="186697"></path><path d="M234.674 149.33h554.636v682.668H234.674z" fill="#5D9CEC" p-id="186698"></path><path d="M725.31 0.004H298.674c-47.14 0-85.344 38.204-85.344 85.326v853.324c0 47.124 38.204 85.342 85.344 85.342h426.636c47.156 0 85.376-38.218 85.376-85.342V85.33c0-47.122-38.22-85.326-85.376-85.326z m64 938.65c0 35.31-28.688 63.998-64 63.998H298.674c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324z" fill="#656D78" p-id="186699"></path><path d="M512 853.342c-35.344 0-64 28.656-64 64s28.656 63.998 64 63.998c35.342 0 64-28.654 64-63.998s-28.656-64-64-64z m0 85.312c-11.766 0-21.328-9.562-21.328-21.312 0-11.782 9.562-21.344 21.328-21.344 11.764 0 21.328 9.562 21.328 21.344 0 11.75-9.562 21.312-21.328 21.312z" fill="#656D78" p-id="186700"></path><path d="M426.672 85.33c0 11.782-9.562 21.344-21.344 21.344S384 97.112 384 85.33s9.546-21.328 21.328-21.328 21.344 9.546 21.344 21.328z" fill="#5D9CEC" p-id="186701"></path><path d="M554.688 64.002h-85.358c-11.782 0-21.328 9.546-21.328 21.328s9.546 21.344 21.328 21.344h85.358c11.75 0 21.312-9.562 21.312-21.344s-9.562-21.328-21.312-21.328z" opacity=".2" p-id="186702"></path><path d="M509.33 832.216h-122.658l128.002-682.886h122.638z" fill="#FFFFFF" opacity=".1" p-id="186703"></path></svg>
|
|
87
|
+
2
|
|
88
|
+
</div>
|
|
89
|
+
<input type="text" class="form-control device2" placeholder="No device found" disabled>
|
|
90
|
+
</div>
|
|
91
|
+
<div class="dropdown-divider"></div>
|
|
92
|
+
<h6 class="dropdown-header">{% if lan == 'cn' %} 包名 {% else %} Package Name {% endif %}</h6>
|
|
93
|
+
<div class="input-group mb-3 mt-2" style="width: 93%;margin-left: 10px;">
|
|
94
|
+
<div class="input-group-text">
|
|
95
|
+
<svg t="1645171258689" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2225" width="2000" height="2000"><path d="M352 96H224c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h192c35.2 0 64-28.8 64-64V224c0-70.4-57.6-128-128-128z m64 319.9l-0.1 0.1H224c-17 0-33-6.7-45.1-18.9S160 369 160 352V224c0-17 6.7-33 18.9-45.1S207 160 224 160h128c17 0 33 6.7 45.1 18.9S416 207 416 224v191.9zM800 96H672c-70.4 0-128 57.6-128 128v192c0 35.2 28.8 64 64 64h192c70.4 0 128-57.6 128-128V224c0-70.4-57.6-128-128-128z m64 256c0 17-6.7 33-18.9 45.1S817 416 800 416H608.1l-0.1-0.1V224c0-17 6.7-33 18.9-45.1S655 160 672 160h128c17 0 33 6.7 45.1 18.9S864 207 864 224v128zM416 544H224c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h128c70.4 0 128-57.6 128-128V608c0-35.2-28.8-64-64-64z m0 256c0 17-6.7 33-18.9 45.1S369 864 352 864H224c-17 0-33-6.7-45.1-18.9S160 817 160 800V672c0-17 6.7-33 18.9-45.1S207 608 224 608h191.9l0.1 0.1V800zM800 544H608c-35.2 0-64 28.8-64 64v192c0 70.4 57.6 128 128 128h128c70.4 0 128-57.6 128-128V672c0-70.4-57.6-128-128-128z m64 256c0 17-6.7 33-18.9 45.1S817 864 800 864H672c-17 0-33-6.7-45.1-18.9S608 817 608 800V608.1l0.1-0.1H800c17 0 33 6.7 45.1 18.9S864 655 864 672v128z" fill="#1875F0" p-id="2226"></path></svg>
|
|
96
|
+
</div>
|
|
97
|
+
<select id="select-app" class="select2-selection--single" data-placeholder="Please select a package"></select>
|
|
98
|
+
</div>
|
|
99
|
+
{% else %}
|
|
100
|
+
<div class="input-group mb-3 mt-2" style="width: 93%;margin-left: 10px;">
|
|
101
|
+
<div class="input-group-text">
|
|
102
|
+
<svg t="1638090687049" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="186695" width="200" height="200"><path d="M213.33 128.002c-11.782 0-21.328 9.546-21.328 21.328v42.672c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328V149.33c0-11.782-9.562-21.328-21.344-21.328zM213.33 234.674c-11.782 0-21.328 9.546-21.328 21.328v85.328c0 11.782 9.546 21.344 21.328 21.344s21.344-9.562 21.344-21.344v-85.328c0-11.782-9.562-21.328-21.344-21.328zM213.33 384.002c-11.782 0-21.328 9.546-21.328 21.326v85.344c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328v-85.344c0-11.78-9.562-21.326-21.344-21.326z" fill="#434A54" p-id="186696"></path><path d="M810.686 256.002c-11.812 0-21.376 9.546-21.376 21.328v85.344c0 11.782 9.562 21.328 21.376 21.328 11.75 0 21.312-9.546 21.312-21.328v-85.344c0-11.782-9.562-21.328-21.312-21.328zM298.674 1002.652c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324c0 35.31-28.688 63.998-64 63.998H298.674z" fill="#434A54" p-id="186697"></path><path d="M234.674 149.33h554.636v682.668H234.674z" fill="#5D9CEC" p-id="186698"></path><path d="M725.31 0.004H298.674c-47.14 0-85.344 38.204-85.344 85.326v853.324c0 47.124 38.204 85.342 85.344 85.342h426.636c47.156 0 85.376-38.218 85.376-85.342V85.33c0-47.122-38.22-85.326-85.376-85.326z m64 938.65c0 35.31-28.688 63.998-64 63.998H298.674c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324z" fill="#656D78" p-id="186699"></path><path d="M512 853.342c-35.344 0-64 28.656-64 64s28.656 63.998 64 63.998c35.342 0 64-28.654 64-63.998s-28.656-64-64-64z m0 85.312c-11.766 0-21.328-9.562-21.328-21.312 0-11.782 9.562-21.344 21.328-21.344 11.764 0 21.328 9.562 21.328 21.344 0 11.75-9.562 21.312-21.328 21.312z" fill="#656D78" p-id="186700"></path><path d="M426.672 85.33c0 11.782-9.562 21.344-21.344 21.344S384 97.112 384 85.33s9.546-21.328 21.328-21.328 21.344 9.546 21.344 21.328z" fill="#5D9CEC" p-id="186701"></path><path d="M554.688 64.002h-85.358c-11.782 0-21.328 9.546-21.328 21.328s9.546 21.344 21.328 21.344h85.358c11.75 0 21.312-9.562 21.312-21.344s-9.562-21.328-21.312-21.328z" opacity=".2" p-id="186702"></path><path d="M509.33 832.216h-122.658l128.002-682.886h122.638z" fill="#FFFFFF" opacity=".1" p-id="186703"></path></svg>
|
|
103
|
+
1
|
|
104
|
+
</div>
|
|
105
|
+
<input type="text" class="form-control device1" placeholder="No device found" disabled>
|
|
106
|
+
</div>
|
|
107
|
+
<div class="input-group mb-3 mt-2" style="width: 93%;margin-left: 10px;">
|
|
108
|
+
<div class="input-group-text">
|
|
109
|
+
<svg t="1638090687049" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="186695" width="200" height="200"><path d="M213.33 128.002c-11.782 0-21.328 9.546-21.328 21.328v42.672c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328V149.33c0-11.782-9.562-21.328-21.344-21.328zM213.33 234.674c-11.782 0-21.328 9.546-21.328 21.328v85.328c0 11.782 9.546 21.344 21.328 21.344s21.344-9.562 21.344-21.344v-85.328c0-11.782-9.562-21.328-21.344-21.328zM213.33 384.002c-11.782 0-21.328 9.546-21.328 21.326v85.344c0 11.782 9.546 21.328 21.328 21.328s21.344-9.546 21.344-21.328v-85.344c0-11.78-9.562-21.326-21.344-21.326z" fill="#434A54" p-id="186696"></path><path d="M810.686 256.002c-11.812 0-21.376 9.546-21.376 21.328v85.344c0 11.782 9.562 21.328 21.376 21.328 11.75 0 21.312-9.546 21.312-21.328v-85.344c0-11.782-9.562-21.328-21.312-21.328zM298.674 1002.652c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324c0 35.31-28.688 63.998-64 63.998H298.674z" fill="#434A54" p-id="186697"></path><path d="M234.674 149.33h554.636v682.668H234.674z" fill="#5D9CEC" p-id="186698"></path><path d="M725.31 0.004H298.674c-47.14 0-85.344 38.204-85.344 85.326v853.324c0 47.124 38.204 85.342 85.344 85.342h426.636c47.156 0 85.376-38.218 85.376-85.342V85.33c0-47.122-38.22-85.326-85.376-85.326z m64 938.65c0 35.31-28.688 63.998-64 63.998H298.674c-35.296 0-64-28.688-64-63.998V85.33c0-35.28 28.704-63.998 64-63.998h426.636c35.312 0 64 28.718 64 63.998v853.324z" fill="#656D78" p-id="186699"></path><path d="M512 853.342c-35.344 0-64 28.656-64 64s28.656 63.998 64 63.998c35.342 0 64-28.654 64-63.998s-28.656-64-64-64z m0 85.312c-11.766 0-21.328-9.562-21.328-21.312 0-11.782 9.562-21.344 21.328-21.344 11.764 0 21.328 9.562 21.328 21.344 0 11.75-9.562 21.312-21.328 21.312z" fill="#656D78" p-id="186700"></path><path d="M426.672 85.33c0 11.782-9.562 21.344-21.344 21.344S384 97.112 384 85.33s9.546-21.328 21.328-21.328 21.344 9.546 21.344 21.328z" fill="#5D9CEC" p-id="186701"></path><path d="M554.688 64.002h-85.358c-11.782 0-21.328 9.546-21.328 21.328s9.546 21.344 21.328 21.344h85.358c11.75 0 21.312-9.562 21.312-21.344s-9.562-21.328-21.312-21.328z" opacity=".2" p-id="186702"></path><path d="M509.33 832.216h-122.658l128.002-682.886h122.638z" fill="#FFFFFF" opacity=".1" p-id="186703"></path></svg>
|
|
110
|
+
2
|
|
111
|
+
</div>
|
|
112
|
+
<input type="text" class="form-control device2" placeholder="No device found" disabled>
|
|
113
|
+
</div>
|
|
114
|
+
<div class="dropdown-divider"></div>
|
|
115
|
+
<h6 class="dropdown-header">{% if lan == 'cn' %} 包名 {% else %} Package Name {% endif %}</h6>
|
|
116
|
+
<div class="input-group mb-3 mt-2" style="width: 93%;margin-left: 10px;">
|
|
117
|
+
<div class="input-group-text">
|
|
118
|
+
<svg t="1645171258689" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2225" width="2000" height="2000"><path d="M352 96H224c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h192c35.2 0 64-28.8 64-64V224c0-70.4-57.6-128-128-128z m64 319.9l-0.1 0.1H224c-17 0-33-6.7-45.1-18.9S160 369 160 352V224c0-17 6.7-33 18.9-45.1S207 160 224 160h128c17 0 33 6.7 45.1 18.9S416 207 416 224v191.9zM800 96H672c-70.4 0-128 57.6-128 128v192c0 35.2 28.8 64 64 64h192c70.4 0 128-57.6 128-128V224c0-70.4-57.6-128-128-128z m64 256c0 17-6.7 33-18.9 45.1S817 416 800 416H608.1l-0.1-0.1V224c0-17 6.7-33 18.9-45.1S655 160 672 160h128c17 0 33 6.7 45.1 18.9S864 207 864 224v128zM416 544H224c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h128c70.4 0 128-57.6 128-128V608c0-35.2-28.8-64-64-64z m0 256c0 17-6.7 33-18.9 45.1S369 864 352 864H224c-17 0-33-6.7-45.1-18.9S160 817 160 800V672c0-17 6.7-33 18.9-45.1S207 608 224 608h191.9l0.1 0.1V800zM800 544H608c-35.2 0-64 28.8-64 64v192c0 70.4 57.6 128 128 128h128c70.4 0 128-57.6 128-128V672c0-70.4-57.6-128-128-128z m64 256c0 17-6.7 33-18.9 45.1S817 864 800 864H672c-17 0-33-6.7-45.1-18.9S608 817 608 800V608.1l0.1-0.1H800c17 0 33 6.7 45.1 18.9S864 655 864 672v128z" fill="#1875F0" p-id="2226"></path></svg>
|
|
119
|
+
1
|
|
120
|
+
</div>
|
|
121
|
+
<select id="select-app1" class="select2-selection--single" data-placeholder="Please select package 1"></select>
|
|
122
|
+
</div>
|
|
123
|
+
<div class="input-group mb-3 mt-2" style="width: 93%;margin-left: 10px;">
|
|
124
|
+
<div class="input-group-text">
|
|
125
|
+
<svg t="1645171258689" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2225" width="2000" height="2000"><path d="M352 96H224c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h192c35.2 0 64-28.8 64-64V224c0-70.4-57.6-128-128-128z m64 319.9l-0.1 0.1H224c-17 0-33-6.7-45.1-18.9S160 369 160 352V224c0-17 6.7-33 18.9-45.1S207 160 224 160h128c17 0 33 6.7 45.1 18.9S416 207 416 224v191.9zM800 96H672c-70.4 0-128 57.6-128 128v192c0 35.2 28.8 64 64 64h192c70.4 0 128-57.6 128-128V224c0-70.4-57.6-128-128-128z m64 256c0 17-6.7 33-18.9 45.1S817 416 800 416H608.1l-0.1-0.1V224c0-17 6.7-33 18.9-45.1S655 160 672 160h128c17 0 33 6.7 45.1 18.9S864 207 864 224v128zM416 544H224c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h128c70.4 0 128-57.6 128-128V608c0-35.2-28.8-64-64-64z m0 256c0 17-6.7 33-18.9 45.1S369 864 352 864H224c-17 0-33-6.7-45.1-18.9S160 817 160 800V672c0-17 6.7-33 18.9-45.1S207 608 224 608h191.9l0.1 0.1V800zM800 544H608c-35.2 0-64 28.8-64 64v192c0 70.4 57.6 128 128 128h128c70.4 0 128-57.6 128-128V672c0-70.4-57.6-128-128-128z m64 256c0 17-6.7 33-18.9 45.1S817 864 800 864H672c-17 0-33-6.7-45.1-18.9S608 817 608 800V608.1l0.1-0.1H800c17 0 33 6.7 45.1 18.9S864 655 864 672v128z" fill="#1875F0" p-id="2226"></path></svg>
|
|
126
|
+
2
|
|
127
|
+
</div>
|
|
128
|
+
<select id="select-app2" class="select2-selection--single" data-placeholder="Please select package 2"></select>
|
|
129
|
+
</div>
|
|
130
|
+
|
|
131
|
+
{% endif %}
|
|
132
|
+
|
|
133
|
+
<div class="dropdown-divider"></div>
|
|
134
|
+
<h6 class="dropdown-header">{% if lan == 'cn' %} 性能指标 {% else %} APM Target {% endif %}</h6>
|
|
135
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="cpu_checkbox" type="checkbox" checked name="cpu"> CPU</label>
|
|
136
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="mem_checkbox" type="checkbox" checked name="mem"> Memory</label>
|
|
137
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="flow_checkbox" type="checkbox" checked name="Network-Data"> Network</label>
|
|
138
|
+
<label class="dropdown-item cursor-pointer"><input class="form-check-input m-0 me-2 cursor-pointer" id="fps_checkbox" type="checkbox" name="fps" checked> FPS</label>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
<div class="apm-data mt-1" style="width: 75%;">
|
|
142
|
+
<div id="cpu" class="mb-3 cpu" style="min-width:400px;height:300px"></div>
|
|
143
|
+
<div id="mem" class="mb-3 mem" style="min-width:400px;height:300px"></div>
|
|
144
|
+
<div id="network" class="Network-Data mb-3" style="min-width:400px;height:300px"></div>
|
|
145
|
+
<div id="fps" class="mb-3 fps" style="min-width:400px;height:300px"></div>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
|
|
149
|
+
{% endblock %}
|
|
150
|
+
|
|
151
|
+
{% block js %}
|
|
152
|
+
<script>
|
|
153
|
+
|
|
154
|
+
var stop = false; // 任务状态
|
|
155
|
+
const model = '{{ model }}';
|
|
156
|
+
|
|
157
|
+
function ruteCheck(){
|
|
158
|
+
if(['2-devices','2-app'].indexOf(model) === -1 && model){
|
|
159
|
+
this.location.href = '/?model=2-devices&lan=en';
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
$(document).ready(function() {
|
|
164
|
+
|
|
165
|
+
ruteCheck();
|
|
166
|
+
|
|
167
|
+
$('#debug-connect').click();
|
|
168
|
+
|
|
169
|
+
$(".form-check-input").each(function(){
|
|
170
|
+
$(this).change(function() {
|
|
171
|
+
let flag1 = $(this).is(':checked');
|
|
172
|
+
if(flag1){
|
|
173
|
+
$("."+$(this).prop('name')).show()
|
|
174
|
+
}else{
|
|
175
|
+
$("."+$(this).prop('name')).hide()
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
$('#debug-connect').click(function () {
|
|
182
|
+
initializeEnv(model);
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
function initializeAPM(){
|
|
187
|
+
$.ajax({
|
|
188
|
+
url: "/apm/initialize",
|
|
189
|
+
type: "POST",
|
|
190
|
+
async: true,
|
|
191
|
+
cache: false,
|
|
192
|
+
success: function (data) {
|
|
193
|
+
console.log(data)
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
function getPkgnames(device,element){
|
|
199
|
+
$.ajax({
|
|
200
|
+
url: "/device/package",
|
|
201
|
+
type: "GET",
|
|
202
|
+
async: true,
|
|
203
|
+
cache: false,
|
|
204
|
+
data:{
|
|
205
|
+
platform:'Android',
|
|
206
|
+
device:device
|
|
207
|
+
},
|
|
208
|
+
beforeSend: function () {
|
|
209
|
+
$('#'+element).empty();
|
|
210
|
+
$('#'+element).append('<option></option>');
|
|
211
|
+
},
|
|
212
|
+
success: function (data) {
|
|
213
|
+
if(data['status'] != 1 ) {
|
|
214
|
+
SwalFire('error', 'Connet failed !', 'No devices found', 2000)
|
|
215
|
+
}else{
|
|
216
|
+
for(var i=0;i<data['pkgnames'].length;i++){
|
|
217
|
+
$('#'+element).append('<option>'+data['pkgnames'][i]+'</option>')
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
function initializeEnv(model){
|
|
226
|
+
$.ajax({
|
|
227
|
+
url: "/device/info?platform=Android",
|
|
228
|
+
type: "GET",
|
|
229
|
+
async: true,
|
|
230
|
+
cache: false,
|
|
231
|
+
beforeSend: function () {
|
|
232
|
+
$('#select-app').empty();
|
|
233
|
+
$('#select-app1').empty();
|
|
234
|
+
$('#select-app2').empty();
|
|
235
|
+
$('.device1').empty();
|
|
236
|
+
$('.device2').empty();
|
|
237
|
+
SwalLoading('Device initialization!','Initializing device environment, please wait。');
|
|
238
|
+
},
|
|
239
|
+
success: function (data) {
|
|
240
|
+
console.log(data);
|
|
241
|
+
if(data['status'] != 1 ) {
|
|
242
|
+
SwalFire('error', 'Connect failed !', 'No devices found', 2000);
|
|
243
|
+
}else{
|
|
244
|
+
if(data['devices'].length <2){
|
|
245
|
+
SwalFire('error', 'Android Devices < 2 !', 'Please check if the device nums are 2', 2000);
|
|
246
|
+
}else{
|
|
247
|
+
$('.device1').val(data['devices'][0]);
|
|
248
|
+
$('.device2').val(data['devices'][1]);
|
|
249
|
+
if(model == '2-devices'){
|
|
250
|
+
for(var i=0;i<data['pkgnames'].length;i++){
|
|
251
|
+
$('#select-app').append('<option>'+data['pkgnames'][i]+'</option>')
|
|
252
|
+
}
|
|
253
|
+
}else{
|
|
254
|
+
getPkgnames($('.device1').val(),'select-app1');
|
|
255
|
+
getPkgnames($('.device2').val(),'select-app2');
|
|
256
|
+
}
|
|
257
|
+
swal.close();
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
function getCpuRate(pkgname, device){
|
|
266
|
+
$.ajax({
|
|
267
|
+
url: "/apm/cpu",
|
|
268
|
+
type: "GET",
|
|
269
|
+
async: true,
|
|
270
|
+
cache: false,
|
|
271
|
+
data:{
|
|
272
|
+
model:model,
|
|
273
|
+
platform:'Android',
|
|
274
|
+
pkgname:pkgname,
|
|
275
|
+
device:device
|
|
276
|
+
},
|
|
277
|
+
success: function (data) {
|
|
278
|
+
console.log(data)
|
|
279
|
+
if(stop == false){
|
|
280
|
+
if(data['status'] == 1){
|
|
281
|
+
try {
|
|
282
|
+
var series1 = cpu_chart.series[0];
|
|
283
|
+
var series2 = cpu_chart.series[1];
|
|
284
|
+
var x = (new Date()).getTime(),
|
|
285
|
+
y1 = data['first'],
|
|
286
|
+
y2 = data['second'];
|
|
287
|
+
series1.addPoint([x, y1], true, true);
|
|
288
|
+
series2.addPoint([x, y2], true, true);
|
|
289
|
+
setTimeout(getCpuRate(pkgname,device), 2000);
|
|
290
|
+
}catch (e) {}
|
|
291
|
+
}else{
|
|
292
|
+
SwalFire('error','something error',data['msg'],2000);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
function getMemPss(pkgname, device) {
|
|
300
|
+
$.ajax({
|
|
301
|
+
url: "/apm/mem",
|
|
302
|
+
type: "GET",
|
|
303
|
+
async: true,
|
|
304
|
+
cache: false,
|
|
305
|
+
data:{
|
|
306
|
+
model:model,
|
|
307
|
+
platform:'Android',
|
|
308
|
+
pkgname:pkgname,
|
|
309
|
+
device:device
|
|
310
|
+
},
|
|
311
|
+
success: function (data) {
|
|
312
|
+
console.log(data)
|
|
313
|
+
if(data['status'] == 1){
|
|
314
|
+
try {
|
|
315
|
+
var series1 = mem_chart.series[0];
|
|
316
|
+
var series2 = mem_chart.series[1];
|
|
317
|
+
var x = (new Date()).getTime(),
|
|
318
|
+
y1 = data['first'],
|
|
319
|
+
y2 = data['second'];
|
|
320
|
+
series1.addPoint([x, y1], true, true);
|
|
321
|
+
series2.addPoint([x, y2], true, true);
|
|
322
|
+
setTimeout(getMemPss(pkgname,device), 2000);
|
|
323
|
+
}catch (e) {}
|
|
324
|
+
}else{
|
|
325
|
+
SwalFire('error','something error',data['msg'],2000);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
function getNetWork(pkgname, device) {
|
|
332
|
+
$.ajax({
|
|
333
|
+
url: "/apm/network",
|
|
334
|
+
type: "GET",
|
|
335
|
+
async: true,
|
|
336
|
+
cache: false,
|
|
337
|
+
data:{
|
|
338
|
+
model:model,
|
|
339
|
+
platform:'Android',
|
|
340
|
+
pkgname:pkgname,
|
|
341
|
+
device:device,
|
|
342
|
+
wifi_switch: 'true',
|
|
343
|
+
},
|
|
344
|
+
success: function (data) {
|
|
345
|
+
if(data['status'] == 1){
|
|
346
|
+
try {
|
|
347
|
+
var series1 = network_chart.series[0];
|
|
348
|
+
var series2 = network_chart.series[1];
|
|
349
|
+
var x = (new Date()).getTime(),
|
|
350
|
+
y1 = data['first'],
|
|
351
|
+
y2 = data['second'];
|
|
352
|
+
series1.addPoint([x, y1], true, true);
|
|
353
|
+
series2.addPoint([x, y2], true, true);
|
|
354
|
+
setTimeout(getNetWork(pkgname,device), 2000);
|
|
355
|
+
}catch (e) {}
|
|
356
|
+
}else{
|
|
357
|
+
SwalFire('error','something error',data['msg'],2000);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
function getFps(pkgname, device) {
|
|
364
|
+
$.ajax({
|
|
365
|
+
url: "/apm/fps",
|
|
366
|
+
type: "GET",
|
|
367
|
+
async: true,
|
|
368
|
+
cache: false,
|
|
369
|
+
data:{
|
|
370
|
+
model:model,
|
|
371
|
+
platform:'Android',
|
|
372
|
+
pkgname:pkgname,
|
|
373
|
+
device:device,
|
|
374
|
+
surv:'true'
|
|
375
|
+
},
|
|
376
|
+
success: function (data) {
|
|
377
|
+
console.log(data)
|
|
378
|
+
if(data['status'] == 1){
|
|
379
|
+
try {
|
|
380
|
+
var series1 = fps_chart.series[0];
|
|
381
|
+
var series2 = fps_chart.series[1];
|
|
382
|
+
var x = (new Date()).getTime(),
|
|
383
|
+
y1 = data['first'],
|
|
384
|
+
y2 = data['second'];
|
|
385
|
+
series1.addPoint([x, y1], true, true);
|
|
386
|
+
series2.addPoint([x, y2], true, true);
|
|
387
|
+
setTimeout(getFps(pkgname,device), 2000);
|
|
388
|
+
}catch (e) {}
|
|
389
|
+
}else{
|
|
390
|
+
SwalFire('error','something error',data['msg'],2000);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
var rangeSelector = {
|
|
397
|
+
buttons: [{
|
|
398
|
+
count: 1,
|
|
399
|
+
type: 'minute',
|
|
400
|
+
text: '1min'
|
|
401
|
+
}, {
|
|
402
|
+
count: 5,
|
|
403
|
+
type: 'minute',
|
|
404
|
+
text: '5min'
|
|
405
|
+
}, {
|
|
406
|
+
type: 'all',
|
|
407
|
+
text: 'All'
|
|
408
|
+
}],
|
|
409
|
+
inputEnabled: false,
|
|
410
|
+
selected: 0
|
|
411
|
+
};
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
function Fseries() {
|
|
415
|
+
let name1 = 'Device1';
|
|
416
|
+
let name2 = 'Device2';
|
|
417
|
+
if(model == '2-app'){
|
|
418
|
+
name1 = 'APP1';
|
|
419
|
+
name2 = 'APP2';
|
|
420
|
+
}
|
|
421
|
+
let series = [{
|
|
422
|
+
name : name1,
|
|
423
|
+
pointInterval: 120 * 1000,
|
|
424
|
+
data : (function () {
|
|
425
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
426
|
+
for (i = -999; i <= 0; i += 1) {
|
|
427
|
+
data.push([time + i * 1000, Math.round(0)]);
|
|
428
|
+
}
|
|
429
|
+
return data;
|
|
430
|
+
}())
|
|
431
|
+
},{
|
|
432
|
+
name : name2,
|
|
433
|
+
pointInterval: 120 * 1000,
|
|
434
|
+
data : (function () {
|
|
435
|
+
var data = [], time = (new Date()).getTime(), i;
|
|
436
|
+
for (i = -999; i <= 0; i += 1) {
|
|
437
|
+
data.push([time + i * 1000, Math.round(0)]);
|
|
438
|
+
}
|
|
439
|
+
return data;
|
|
440
|
+
}())
|
|
441
|
+
}];
|
|
442
|
+
|
|
443
|
+
return series;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
function setPlotLine(target) {
|
|
447
|
+
var value = 0;
|
|
448
|
+
switch (target) {
|
|
449
|
+
case 'cpu':
|
|
450
|
+
value = parseInt($('#cpu_warning_value').val());
|
|
451
|
+
break;
|
|
452
|
+
case 'mem':
|
|
453
|
+
value = parseInt($('#mem_warning_value').val());
|
|
454
|
+
break;
|
|
455
|
+
case 'fps':
|
|
456
|
+
value = parseInt($('#fps_warning_value').val());
|
|
457
|
+
break;
|
|
458
|
+
case 'battery':
|
|
459
|
+
value = parseInt($('#battery_warning_value').val());
|
|
460
|
+
break;
|
|
461
|
+
case 'upflow':
|
|
462
|
+
value = parseInt($('#upflow_warning_value').val());
|
|
463
|
+
break;
|
|
464
|
+
case 'downflow':
|
|
465
|
+
value = parseInt($('#down_warning_value').val());
|
|
466
|
+
break;
|
|
467
|
+
}
|
|
468
|
+
var plotLines = [];
|
|
469
|
+
|
|
470
|
+
if(value != 0){
|
|
471
|
+
plotLines = [{
|
|
472
|
+
value: value,
|
|
473
|
+
color: 'red',
|
|
474
|
+
dashStyle: 'shortdash',
|
|
475
|
+
width: 2,
|
|
476
|
+
label: {
|
|
477
|
+
text: 'warning value : '+value,
|
|
478
|
+
style: {
|
|
479
|
+
'color': 'white',
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
}];
|
|
483
|
+
}
|
|
484
|
+
return plotLines;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
function chartsInitialize(apmType,title){
|
|
488
|
+
//charts初始化
|
|
489
|
+
let seriesFinal = Fseries();
|
|
490
|
+
let legend = false;
|
|
491
|
+
let yAxis = {
|
|
492
|
+
opposite:false,
|
|
493
|
+
plotLines:setPlotLine(apmType)
|
|
494
|
+
};
|
|
495
|
+
let yAxis_plot = {
|
|
496
|
+
opposite:false,
|
|
497
|
+
plotLines:setPlotLine(apmType)
|
|
498
|
+
};
|
|
499
|
+
switch (apmType) {
|
|
500
|
+
case 'fps':
|
|
501
|
+
legend = true;
|
|
502
|
+
yAxis = yAxis_plot;
|
|
503
|
+
break;
|
|
504
|
+
case 'network':
|
|
505
|
+
legend = true;
|
|
506
|
+
break;
|
|
507
|
+
case 'cpu':
|
|
508
|
+
legend = true;
|
|
509
|
+
yAxis = yAxis_plot;
|
|
510
|
+
break;
|
|
511
|
+
case 'mem':
|
|
512
|
+
legend = true;
|
|
513
|
+
break;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
let apm_chart = Highcharts.stockChart(apmType, {
|
|
517
|
+
rangeSelector: rangeSelector,
|
|
518
|
+
title : {
|
|
519
|
+
text : title
|
|
520
|
+
},
|
|
521
|
+
tooltip: {
|
|
522
|
+
split: false
|
|
523
|
+
},
|
|
524
|
+
legend: {
|
|
525
|
+
enabled:legend
|
|
526
|
+
},
|
|
527
|
+
credits:{
|
|
528
|
+
enabled: false
|
|
529
|
+
},
|
|
530
|
+
scrollbar : {
|
|
531
|
+
enabled : true
|
|
532
|
+
},
|
|
533
|
+
navigator : {
|
|
534
|
+
enabled : false
|
|
535
|
+
},
|
|
536
|
+
exporting: {
|
|
537
|
+
enabled: false
|
|
538
|
+
},
|
|
539
|
+
yAxis: yAxis,
|
|
540
|
+
series : seriesFinal
|
|
541
|
+
});
|
|
542
|
+
|
|
543
|
+
return apm_chart
|
|
544
|
+
};
|
|
545
|
+
|
|
546
|
+
function cpuInitialize(){
|
|
547
|
+
//初始化cpu
|
|
548
|
+
let cpu_chart = chartsInitialize('cpu','CPU Usage (%)');
|
|
549
|
+
return cpu_chart
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
function memInitialize(){
|
|
553
|
+
//初始化mem
|
|
554
|
+
let mem_chart = chartsInitialize('mem','Memory Usage (MB)');
|
|
555
|
+
return mem_chart
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
function networkInitialize(){
|
|
559
|
+
//初始化network
|
|
560
|
+
let network_chart = chartsInitialize('network','Network Data (KB)');
|
|
561
|
+
return network_chart
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
function fpsInitialize(){
|
|
565
|
+
//初始化fps
|
|
566
|
+
let fps_chart = chartsInitialize('fps','FPS (HZ)');
|
|
567
|
+
return fps_chart
|
|
568
|
+
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
var cpu_chart = cpuInitialize();
|
|
572
|
+
var mem_chart = memInitialize();
|
|
573
|
+
var network_chart = networkInitialize();
|
|
574
|
+
var fps_chart = fpsInitialize();
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
function collectPers(device,pkgname=null,type,title,func){
|
|
578
|
+
// 收集性能数据初始化
|
|
579
|
+
let seriesFinal = Fseries();
|
|
580
|
+
let legend = false;
|
|
581
|
+
let yAxis = {
|
|
582
|
+
opposite:false,
|
|
583
|
+
plotLines:setPlotLine(type)
|
|
584
|
+
};
|
|
585
|
+
let yAxis_plot = {
|
|
586
|
+
opposite:false,
|
|
587
|
+
plotLines:setPlotLine(type)
|
|
588
|
+
};
|
|
589
|
+
switch (type) {
|
|
590
|
+
case 'fps':
|
|
591
|
+
legend = true;
|
|
592
|
+
yAxis = yAxis_plot;
|
|
593
|
+
break;
|
|
594
|
+
case 'network':
|
|
595
|
+
legend = true;
|
|
596
|
+
break;
|
|
597
|
+
case 'cpu':
|
|
598
|
+
yAxis = yAxis_plot;
|
|
599
|
+
legend = true;
|
|
600
|
+
break;
|
|
601
|
+
case 'mem':
|
|
602
|
+
legend = true;
|
|
603
|
+
break;
|
|
604
|
+
default:
|
|
605
|
+
seriesFinal = Fseries();
|
|
606
|
+
break;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
let chartPers = Highcharts.stockChart(type, {
|
|
610
|
+
chart : {
|
|
611
|
+
events : {
|
|
612
|
+
load : func
|
|
613
|
+
}
|
|
614
|
+
},
|
|
615
|
+
rangeSelector: rangeSelector,
|
|
616
|
+
title : {
|
|
617
|
+
text : title
|
|
618
|
+
},
|
|
619
|
+
tooltip: {
|
|
620
|
+
split: false
|
|
621
|
+
},
|
|
622
|
+
legend: {
|
|
623
|
+
enabled:legend
|
|
624
|
+
},
|
|
625
|
+
credits:{
|
|
626
|
+
enabled: false
|
|
627
|
+
},
|
|
628
|
+
scrollbar : {
|
|
629
|
+
enabled : true
|
|
630
|
+
},
|
|
631
|
+
navigator : {
|
|
632
|
+
enabled : false
|
|
633
|
+
},
|
|
634
|
+
exporting: {
|
|
635
|
+
enabled: false
|
|
636
|
+
},
|
|
637
|
+
yAxis: yAxis,
|
|
638
|
+
series : seriesFinal
|
|
639
|
+
});
|
|
640
|
+
|
|
641
|
+
return chartPers;
|
|
642
|
+
|
|
643
|
+
}
|
|
644
|
+
|
|
645
|
+
function collectCpu(device,pkgname){
|
|
646
|
+
cpuInitialize();
|
|
647
|
+
cpu_chart = collectPers(device,pkgname,'cpu','CPU Usage (%)',getCpuRate(pkgname,device));
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
function collectMem(device,pkgname){
|
|
651
|
+
memInitialize();
|
|
652
|
+
mem_chart = collectPers(device,pkgname,'mem','Memory Usage (MB)',getMemPss(pkgname,device));
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
function collectNetwork(device,pkgname){
|
|
656
|
+
networkInitialize();
|
|
657
|
+
network_chart = collectPers(device,pkgname,'network','Network Data (KB)',getNetWork(pkgname,device));
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
function collectFps(device,pkgname){
|
|
661
|
+
fpsInitialize();
|
|
662
|
+
fps_chart = collectPers(device,pkgname,'fps','FPS (HZ)',getFps(pkgname,device));
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
$('#run-apm').click(function () {
|
|
666
|
+
let device1 = $('.device1').val();
|
|
667
|
+
let device2 = $('.device2').val();
|
|
668
|
+
if(device1 && device2){
|
|
669
|
+
stop = false;
|
|
670
|
+
$('#stop-apm').show();
|
|
671
|
+
$('#run-apm').hide();
|
|
672
|
+
initializeAPM();
|
|
673
|
+
let device = device1 + ','+ device2;
|
|
674
|
+
let pkgname = model == '2-devices' ? $('#select-app').val() : $('#select-app1').val() + ',' + $('#select-app2').val();
|
|
675
|
+
collectCpu(device,pkgname);
|
|
676
|
+
collectMem(device,pkgname);
|
|
677
|
+
collectNetwork(device,pkgname);
|
|
678
|
+
collectFps(device,pkgname);
|
|
679
|
+
}else{
|
|
680
|
+
SwalFire('error','Execution error','device is empty',2000);
|
|
681
|
+
$('#run-apm').show();
|
|
682
|
+
$('#stop-apm').hide();
|
|
683
|
+
}});
|
|
684
|
+
|
|
685
|
+
$('#stop-apm').click(function () {
|
|
686
|
+
// 防重复提交检查
|
|
687
|
+
if(window.isStoppingPKTask) {
|
|
688
|
+
console.log('正在停止PK任务中,忽略重复操作');
|
|
689
|
+
return;
|
|
690
|
+
}
|
|
691
|
+
window.isStoppingPKTask = true;
|
|
692
|
+
|
|
693
|
+
stop = true;
|
|
694
|
+
let data1 = {
|
|
695
|
+
platform:'Android',
|
|
696
|
+
model:model,
|
|
697
|
+
app:$('#select-app').val(),
|
|
698
|
+
devices:'['+$('.device1').val()+','+$('.device2').val()+']',
|
|
699
|
+
wifi_switch:'true',
|
|
700
|
+
process:'',
|
|
701
|
+
record_switch:'false'
|
|
702
|
+
};
|
|
703
|
+
let data2 = {
|
|
704
|
+
platform:'Android',
|
|
705
|
+
model:model,
|
|
706
|
+
app:'['+$('#select-app1').val()+','+$('#select-app2').val()+']',
|
|
707
|
+
devices:'['+$('.device1').val()+','+$('.device2').val()+']',
|
|
708
|
+
wifi_switch:'true',
|
|
709
|
+
process:'',
|
|
710
|
+
record_switch:'false'
|
|
711
|
+
};
|
|
712
|
+
let data = model == '2-devices' ? data1 : data2;
|
|
713
|
+
$('#run-apm').show();
|
|
714
|
+
$('#stop-apm').hide();
|
|
715
|
+
$.ajax({
|
|
716
|
+
url: "/apm/create/report",
|
|
717
|
+
type: "GET",
|
|
718
|
+
async: true,
|
|
719
|
+
cache: false,
|
|
720
|
+
data:data,
|
|
721
|
+
beforeSend: function () {
|
|
722
|
+
SwalLoading('Save data','Saving data to generate report, please do not leave.')
|
|
723
|
+
},
|
|
724
|
+
success: function (data) {
|
|
725
|
+
if(data['status']==1){
|
|
726
|
+
window.location.href = "/report?lan="+lan
|
|
727
|
+
}else{
|
|
728
|
+
SwalFire('error','Execution error',data['msg'],2000)
|
|
729
|
+
}
|
|
730
|
+
},
|
|
731
|
+
error: function(xhr, status, error) {
|
|
732
|
+
console.error('Stop PK task error:', error);
|
|
733
|
+
SwalFire('error','Network Error','请求失败,请重试',3000)
|
|
734
|
+
},
|
|
735
|
+
complete: function() {
|
|
736
|
+
// 无论成功失败都要重置标志位
|
|
737
|
+
window.isStoppingPKTask = false;
|
|
738
|
+
}
|
|
739
|
+
});
|
|
740
|
+
});
|
|
741
|
+
|
|
742
|
+
</script>
|
|
743
|
+
{% endblock %}
|