现在还集成在公司自动化平台里面,后面计划整理一下再放出来
首先,先点一个赞!目前我也在做一个类似的平台,功能比较相似,期待你可以早点完成脱敏开源。
有几个小问题,期待解惑一下,感谢。
1、(实现多用户同时工作,且相互独立),这块是如何实现的,slave 固定,运行中的其他人如何同时启动运行?
2、测试数据 csv 如何分发到各个 jmeter slave 压力机的?
3、在线编辑压测脚本配置时,是否支持断言、if 控制器、for 循环控制器?
4、编辑已上传的 jmx 压测脚本,是类似于这样解析 jmx 脚本吗?
SearchByClass<ThreadGroup> threadGroups = new SearchByClass<>(ThreadGroup.class);
if (testPlanTree != null) {
testPlanTree.traverse(threadGroups);
}
Collection<ThreadGroup> threadGroupsRes = threadGroups.getSearchResults();
for (ThreadGroup threadGroup : threadGroupsRes) {
LoopController lp = (LoopController) threadGroup.getSamplerController();
jmxHashTreeVO.setThreadGroupContinues(lp.getPropertyAsBoolean("LoopController.continue_forever"));
jmxHashTreeVO.setThreadGroupLoops(String.valueOf(lp.getLoops()));
jmxHashTreeVO.setThreadGroupNumThreads(threadGroup.getNumThreads());
jmxHashTreeVO.setThreadGroupRampUp(threadGroup.getRampUp());
jmxHashTreeVO.setThreadGroupScheduler(threadGroup.getScheduler());
jmxHashTreeVO.setThreadGroupDuration(threadGroup.getDuration());
jmxHashTreeVO.setThreadGroupDelay(threadGroup.getDelay());
}
非常棒的 idea,是否支持 JIRA 的导入?
我在做的也是基于 JMeter 实现的简易压测平台。
以下简单列一下目前已实现的功能以及主要思路,仅供参考。
也希望大家可以提出更优化的意见和建议!
1、jmx 文件上传(业务测试本地调试通过)
2、上传测试数据 csv 文件(如果需要用到的话)
3、自动绑定 jmx 文件以及 csv 文件,同时,自动更新 jmx 文件中引用的 csv 文件对应上传到服务器的目录路径
4、提供编辑功能(暂仅支持在线编辑保存:测试计划公共参数、线程组参数、调度器配置参数)
5、提供 jmx 文件、csv 文件在线打包下载功能
6、提供多压力机环境(通过 shell 脚本自动分发 csv 文件到各个 slave 机器,并启动各个 slave 节点 jmeter-server)
7、测试过程中自动收集服务器应用日志,线程堆栈日志,数据库日志
8、运行结束后,展示性能测试报告(JMeter 原生提供的 report)
9、暂不支持多人同时运行,加锁等待,使用完成后释放
点个赞,回头用的时候再仔细研究学习下
关注中,期待二三,希望不会断掉
哈,巧合了。我是使用 Java + springboot + Appium / Selenium,实现了一套类似功能的 UI 自动化测试平台。正在准备抽离业务代码做下开源分享,刚巧看到你的这篇帖子,学习一下。
你看下我的帖子中,关于我的问题的解决方案写在帖子最后。希望对你有帮助
已解决
mark,目前在用 Java 做一套类型的自动化平台,还在进行中。期待楼主的项目早日脱敏完全开源,学习下思路。
java-client 5.0.4 我也没找到 double tap 方法。。。
升级了 python 最新版本 3.6.5,终于正常了
卸载重装后,还是不行,路径应该还是不对
<PyHKEY:0x000006C6>
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
return self.func(*args)
File "C:\Python34\lib\site-packages\apkutils\gui\__main__.py", line 24, in _bind_apk_right_menu
"../android.ico").resolve())
File "C:\Python34\lib\pathlib.py", line 1027, in resolve
s = self._flavour.resolve(self)
File "C:\Python34\lib\pathlib.py", line 182, in resolve
return self._ext_to_normal(_getfinalpathname(s))
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'C:\\Python34\\lib\\site-packages\\apkutils\\gui\\__main__.py\\..\\android.ico'
win10 64 位,python34.
刚才重启命令行,重新执行绑定命令。有如下报错信息:
<PyHKEY:0x000006C6>
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
return self.func(*args)
File "C:\Python34\lib\site-packages\apkutils\gui\__main__.py", line 24, in _bind_apk_right_menu
"../../../imgs/android.ico").resolve())
File "C:\Python34\lib\pathlib.py", line 1027, in resolve
s = self._flavour.resolve(self)
File "C:\Python34\lib\pathlib.py", line 182, in resolve
return self._ext_to_normal(_getfinalpathname(s))
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'C:\\Python34\\lib\\site-packages\\apkutils\\gui\\__main__.py\\..\\..\\..\\imgs\\android.ico'
点绑定按钮没任何反应,之后右键 apk 选择 APK Parser,报错:该文件没有与之关联的应用来执行该操作......
我也报的这个错,命令行安装的 appium,环境变量已经配了
使用 UIAutomator 2 初始化启动 driver,再试试 Android 8
Appium driver 的启动参数,把 Appium 改成 UIAutomator 2 再试试,Android 7 应该就能支持了。
期待分享设计思路,期待开源
楼主项目 git 地址可以贴出来一份吗?参考学习一下,我最近也在研究搞这块
我现在是这么处理 APP 系统授权弹框的,思路基本一样。
// 自动处理应用首次启动系统授权
UIBean systemPopUpBox = new UIBean(by.NAME, "始终允许", "系统授权弹框");
while (appiumUtil.isElementExist(systemPopUpBox)) {
try {
appiumUtil.clickBean(systemPopUpBox);
} catch (Exception e) {
logger.error("自动点击app应用系统授权框出错!" + e.getMessage());
}
}
在一朋友帮助下,问题终于得到解决。现贴出解决办法。
网卡配置文件中 PREFIX=32
改成 PREFIX=24
,
之后重启网卡 service network restart
,搞定。~
JAVA Appium 中,我试了下面两种方式,方式一报错未生效,方法二生效可用。供各位参考
selectDriver.driver.switchTo().alert().accept();
// 自动处理应用首次启动系统授权
UIBean systemPopUpBox = new UIBean(by.NAME, "始终允许", "系统授权弹框");
while (appiumUtil.isElementExist(systemPopUpBox)) {
try {
appiumUtil.clickBean(systemPopUpBox);
} catch (Exception e) {
logger.error("自动点击应用app授权出错!" + e.getMessage());
}
}
赞一个!期待 Appium 中早日能融入这种方式。