Kea2-python 0.3.3__py3-none-any.whl → 0.3.5__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.

Potentially problematic release.


This version of Kea2-python might be problematic. Click here for more details.

kea2/assets/monkeyq.jar CHANGED
Binary file
kea2/assets/quicktest.py CHANGED
@@ -52,7 +52,7 @@ class Omni_Notes_Sample(unittest.TestCase):
52
52
  assert self.d(resourceId="it.feio.android.omninotes.alpha:id/search_src_text").exists()
53
53
 
54
54
 
55
- URL = "https://raw.githubusercontent.com/ecnusse/Kea2/refs/heads/dev_test_hidden_algorithm/omninotes.apk"
55
+ URL = "https://github.com/federicoiosue/Omni-Notes/releases/download/6.2.0_alpha/OmniNotes-alphaRelease-6.2.0.apk"
56
56
  PACKAGE_NAME = "it.feio.android.omninotes.alpha"
57
57
  FILE_NAME = "omninotes.apk"
58
58
 
kea2/fastbotManager.py CHANGED
@@ -2,8 +2,7 @@ from retry import retry
2
2
  from retry.api import retry_call
3
3
  from dataclasses import asdict
4
4
  import requests
5
- from time import sleep
6
- from pkg_resources import parse_version
5
+ from packaging.version import parse as parse_version
7
6
 
8
7
  from uiautomator2.core import HTTPResponse, _http_request
9
8
  from kea2.adbUtils import ADBDevice, ADBStreamShell_V2
@@ -229,14 +229,14 @@
229
229
  }
230
230
 
231
231
  .table-custom tr.collapse pre {
232
- max-height: 300px;
233
- overflow-y: auto;
234
232
  font-size: 0.85rem;
235
233
  line-height: 1.4;
236
234
  background-color: #f8f9fa;
237
235
  border: 1px solid #e9ecef;
238
236
  border-radius: 4px;
239
237
  padding: 0.75rem;
238
+ white-space: pre-wrap;
239
+ word-wrap: break-word;
240
240
  }
241
241
 
242
242
  .table-custom tr.collapse details {
kea2/u2Driver.py CHANGED
@@ -220,7 +220,7 @@ class StaticXpathUiObject(u2.xpath.XPathSelector):
220
220
  source = self.session.get_page_source()
221
221
  return len(self.selector.all(source)) > 0
222
222
 
223
- def __and__(self, value) -> 'StaticXpathUiObjectr':
223
+ def __and__(self, value) -> 'StaticXpathUiObject':
224
224
  s = u2.xpath.XPathSelector(self.selector)
225
225
  s._next_xpath = u2.xpath.XPathSelector.create(value.selector)
226
226
  s._operator = u2.xpath.Operator.AND
@@ -288,7 +288,7 @@ class StaticXpathUiObject(u2.xpath.XPathSelector):
288
288
  self.selector = new
289
289
  return self
290
290
 
291
- def get(self, timeout=None) -> "XMLElement":
291
+ def get(self, timeout=None) -> "u2.xpath.XMLElement":
292
292
  """
293
293
  Get first matched element
294
294
 
@@ -343,7 +343,15 @@ class _HindenWidgetFilter:
343
343
  self._nodes = []
344
344
 
345
345
  self.idx = rtree.index.Index()
346
- self.set_covered_attr(root)
346
+ try:
347
+ self.set_covered_attr(root)
348
+ except Exception as e:
349
+ import traceback, uuid
350
+ traceback.print_exc()
351
+ logger.error(f"Error in setting covered widgets")
352
+ with open(f"kea2_error_tree_{uuid.uuid4().hex}.xml", "wb") as f:
353
+ xml_bytes = etree.tostring(root, pretty_print=True, encoding="utf-8", xml_declaration=True)
354
+ f.write(xml_bytes)
347
355
 
348
356
  # xml_bytes = etree.tostring(root, pretty_print=True, encoding="utf-8", xml_declaration=True)
349
357
  # with open("filtered_tree.xml", "wb") as f:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Kea2-python
3
- Version: 0.3.3
3
+ Version: 0.3.5
4
4
  Summary: A python library for supporting and customizing automated UI testing for mobile apps
5
5
  Author-email: Xixian Liang <xixian@stu.ecnu.edu.cn>
6
6
  Requires-Python: >=3.8
@@ -10,7 +10,7 @@ Requires-Dist: rtree>=1.3.0
10
10
  Requires-Dist: jinja2>=3.0.0
11
11
  Requires-Dist: uiautomator2>=3.3.3
12
12
  Requires-Dist: adbutils>=2.9.3
13
- Requires-Dist: setuptools>=75.3.2
13
+ Requires-Dist: packaging>=25.0
14
14
  Dynamic: license-file
15
15
 
16
16
 
@@ -39,6 +39,7 @@ The group has reached its capacity. Please contact Xixian Liang at [xixian@stu.e
39
39
  <div align="center">
40
40
  <a href="https://en.wikipedia.org/wiki/Kea">Kea2's logo: A large parrot skilled in finding "bugs"</a>
41
41
  </div>
42
+ </br>
42
43
 
43
44
  Kea2 is an easy-to-use tool for fuzzing mobile apps. Its key *novelty* is able to fuse automated UI testing with scripts (usually written by human), thus empowering automated UI testing with human intelligence for effectively finding *crashing bugs* as well as *non-crashing functional (logic) bugs*.
44
45
 
@@ -110,9 +111,10 @@ Find Kea2's options by running
110
111
  kea2 -h
111
112
  ```
112
113
 
113
- > Upgrade Kea2 by `pip`:
114
- >
115
- > `python3 -m pip install -U kea2-python`
114
+ Upgrade Kea2 to its latest version if you already installed Kea2 before:
115
+ ```bash
116
+ python3 -m pip install -U kea2-python
117
+ ```
116
118
 
117
119
  ## Quick Test
118
120
 
@@ -239,7 +241,15 @@ For the preceding always-holding property, we can write the following script to
239
241
  ```
240
242
  > We use [hypothesis](https://github.com/HypothesisWorks/hypothesis) to generate random texts.
241
243
 
242
- You can run this example by using the similar command line in Feature 2.
244
+ You can run this example by using the similar command line in Feature 2.
245
+
246
+ ## Test Reports(测试报告)
247
+
248
+ Kea2 automatically generates comprehensive HTML test reports after each testing session.
249
+
250
+ The reports support both single test runs and merged analysis of multiple test sessions, making it easy to track testing progress and identify issues.
251
+
252
+ - [View detailed test report documentation](docs/test_report_introduction.md)
243
253
 
244
254
  ## Documentations(更多文档)
245
255
 
@@ -250,6 +260,7 @@ You can find the [user manual](docs/manual_en.md), which includes:
250
260
  - How to find and understand Kea2's testing results
251
261
  - How to [whitelist or blacklist](docs/blacklisting.md) specific activities, UI widgets and UI regions during fuzzing
252
262
  - [Q&A for Kea2 and PBT (对Kea2和PBT技术的常见问题和回答)](https://sy8pzmhmun.feishu.cn/wiki/SLGwwqgzIiEuC3kwmV8cSZY0nTg?from=from_copylink)
263
+ - [Kea2 101 (Kea2 从0到1 的入门教程与最佳实践,建议新手阅读)](https://sy8pzmhmun.feishu.cn/wiki/EwaWwPCitiUJoBkIgALcHtglnDK?from=from_copylink)
253
264
 
254
265
  Some blogs on Kea/Kea2 (in Chinese):
255
266
  - [别再苦哈哈写测试脚本了,生成它们吧!(一)](https://mp.weixin.qq.com/s/R2kLCkXpDjpa8wCX4Eidtg)
@@ -329,7 +340,7 @@ Kea2 has been actively developed and maintained by the people in [ecnusse](https
329
340
  [@Drifterpc]: https://github.com/Drifterpc
330
341
  [@tingsu]: https://github.com/tingsu
331
342
 
332
- [Zhendong Su](https://people.inf.ethz.ch/suz/), [Yiheng Xiong](https://xyiheng.github.io/), [Xiangchen Shen](https://xiangchenshen.github.io/), [Mengqian Xu](https://mengqianx.github.io/), [Haiying Sun](https://faculty.ecnu.edu.cn/_s43/shy/main.psp), [Jingling Sun](https://jinglingsun.github.io/), [Jue Wang](https://cv.juewang.info/) have also been actively participated in this project and contributed a lot!
343
+ [Zhendong Su](https://people.inf.ethz.ch/suz/), [Yiheng Xiong](https://xyiheng.github.io/), [Xiangchen Shen](https://xiangchenshen.github.io/), [Mengqian Xu](https://mengqianx.github.io/), [Haiying Sun](https://faculty.ecnu.edu.cn/_s43/shy/main.psp), [Jingling Sun](https://jinglingsun.github.io/), [Jue Wang](https://cv.juewang.info/), [Geguang Pu]() have also been actively participated in this project and contributed a lot!
333
344
 
334
345
  Kea2 has also received many valuable insights, advices, feedbacks and lessons shared by several industrial people from Bytedance ([Zhao Zhang](https://github.com/zhangzhao4444), Yuhui Su from the Fastbot team), OPay (Tiesong Liu), WeChat (Haochuan Lu, Yuetang Deng), Huawei, Xiaomi and etc. Kudos!
335
346
 
@@ -3,19 +3,19 @@ kea2/absDriver.py,sha256=NzmsLs1Ojz-yEXctGAqj7aKBwAQW19zd83l65RABCe8,1288
3
3
  kea2/adbUtils.py,sha256=zi0T0_g44xZQZe3XYzBsuh7VTHpdZ4dd6yKi-p7BTYI,19939
4
4
  kea2/bug_report_generator.py,sha256=gASx3AasGWAufb4A8T4dv0-22knu7h24Z9M9NBSzy24,44107
5
5
  kea2/cli.py,sha256=MccJhY8VPZa1rMAbirm3dmbzDx1lf2w3zrpF1ZUq2m0,6481
6
- kea2/fastbotManager.py,sha256=pGuAH-X26nOy2Qj6Hg5aoMxJx4KfsRk6bj6nhcPENGc,8158
6
+ kea2/fastbotManager.py,sha256=q1vH5B5Z47DMCXxc69YoIbc9JC6gjfAy6-UQKIMea8E,8148
7
7
  kea2/keaUtils.py,sha256=zfTmG23KmWmf5b71rrPTxwnpZhZ6gdlLD9eIhjAZv4Y,25834
8
8
  kea2/kea_launcher.py,sha256=M9TMCdgkteCWO5iBxJRDRvb7dikanoPf3jdicCEurU8,6268
9
9
  kea2/logWatcher.py,sha256=Dp6OzvLSuWYw0AqdcPDqfotaRZQgpF8S49LInGsAWp8,2599
10
10
  kea2/report_merger.py,sha256=0b-g59pdrsJDwVNek02ouu1utuu_Sd_1oEMQa4e23xI,24884
11
11
  kea2/resultSyncer.py,sha256=9kb3H0Innwj7oPboDDTf97nbjam7EP6HYxywR9B8SvM,2437
12
- kea2/u2Driver.py,sha256=SfHkUAp6uHHSllPZmKs7C8JaEGGuX9DPWgshiqyWI5k,19775
12
+ kea2/u2Driver.py,sha256=k1HGH4MF5BbSpohMbK9yn-VpsDzGcYTQLjppHVzHx28,20182
13
13
  kea2/utils.py,sha256=x0VTGweW-XShG9MuwZDMP13SBg8jQXYa7e0AXdwYX38,3270
14
14
  kea2/assets/fastbot-thirdpart.jar,sha256=0SZ_OoZFWDGMnazgXKceHgKvXdUDoIa3Gb2bcifaikk,85664
15
15
  kea2/assets/framework.jar,sha256=rTluOJJKj2DFwh7ascXso1udYdWv00BxBwSQ3Vmv-fw,1149240
16
16
  kea2/assets/kea2-thirdpart.jar,sha256=HYdtG2gqDLuLb72dpK3lX-Y6QUNTrJ-bfQopU5aWpfo,359346
17
- kea2/assets/monkeyq.jar,sha256=4_WLifmU9q5noqMofZWW15Gh8kcuVouNrI-Ca5_g-BM,113104
18
- kea2/assets/quicktest.py,sha256=TJj9GaRioFrijU9PMLpyZY8S07db67UZFBr5G-aQY80,3000
17
+ kea2/assets/monkeyq.jar,sha256=fYC4ynmJcZ5HFQ9zpHSF6CrGLcnldasZfWGtcJ9VgZc,113488
18
+ kea2/assets/quicktest.py,sha256=BgTul5jfSBCh6hVSMRmur61M6_KNTkzIT6Bdff72TE4,3009
19
19
  kea2/assets/fastbot_configs/abl.strings,sha256=Rn8_YEbVGOJqndIY_-kWnR5NaoFI-cuB-ij10Ddhl90,75
20
20
  kea2/assets/fastbot_configs/awl.strings,sha256=-j4980GoWQxGOM9ijAwXPQmziCwFBZJFmuiv2tOEaYI,101
21
21
  kea2/assets/fastbot_configs/max.config,sha256=rBgR4mdgBzqVPQ2lZaXqx2WN6tDzhe-FNizm4Y7tyA8,226
@@ -28,11 +28,11 @@ kea2/assets/fastbot_libs/arm64-v8a/libfastbot_native.so,sha256=tAFrG73pJi7XakRxS
28
28
  kea2/assets/fastbot_libs/armeabi-v7a/libfastbot_native.so,sha256=UV8bhaiPoPKdd3q0vj3kSZqPR9anllai_tz_2QkMMbQ,1335372
29
29
  kea2/assets/fastbot_libs/x86/libfastbot_native.so,sha256=k-aw1gEXRWMKZRNHIggKNuZy0wC1y2BnveJGEIO6rbo,2036856
30
30
  kea2/assets/fastbot_libs/x86_64/libfastbot_native.so,sha256=tiofhlf4uMQcU5WAvrdLgTBME0lb83hVUoGtTwxmE8A,2121416
31
- kea2/templates/bug_report_template.html,sha256=amZUwlJSg1jzpb1-RB0W6fzwXYZBQK-4SHdhj6LYSbo,152983
31
+ kea2/templates/bug_report_template.html,sha256=SkqssIKPOEP_3CjRZuxXEnANVnefg_fYNi97guDDNh8,152992
32
32
  kea2/templates/merged_bug_report_template.html,sha256=iWoXxvN3YQzCabi7BTP4sGl2F6LQrR3_HcG0aD3fHtk,135668
33
- kea2_python-0.3.3.dist-info/licenses/LICENSE,sha256=nM9PPjcsXVo5SzNsjRqWgA-gdJlwqZZcRDSC6Qf6bVE,2034
34
- kea2_python-0.3.3.dist-info/METADATA,sha256=o5Vb8p7ToQ6b2pEEpm-dnNeYBLBc_BadjCa2FC4FJ-U,18569
35
- kea2_python-0.3.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
36
- kea2_python-0.3.3.dist-info/entry_points.txt,sha256=mFX06TyxXiUAJQ6JZn8QHzfn8n5R8_KJ5W-pTm_fRCA,39
37
- kea2_python-0.3.3.dist-info/top_level.txt,sha256=TsgNH4PQoNOVhegpO7AcjutMVWp6Z4KDL1pBH9FnMmk,5
38
- kea2_python-0.3.3.dist-info/RECORD,,
33
+ kea2_python-0.3.5.dist-info/licenses/LICENSE,sha256=nM9PPjcsXVo5SzNsjRqWgA-gdJlwqZZcRDSC6Qf6bVE,2034
34
+ kea2_python-0.3.5.dist-info/METADATA,sha256=_UMbTnB8ENkED62trP8GlHR56DECZs5cVNul--5AdSU,19159
35
+ kea2_python-0.3.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
36
+ kea2_python-0.3.5.dist-info/entry_points.txt,sha256=mFX06TyxXiUAJQ6JZn8QHzfn8n5R8_KJ5W-pTm_fRCA,39
37
+ kea2_python-0.3.5.dist-info/top_level.txt,sha256=TsgNH4PQoNOVhegpO7AcjutMVWp6Z4KDL1pBH9FnMmk,5
38
+ kea2_python-0.3.5.dist-info/RECORD,,