开源框架 appium+python (二) 支持多设备并行 + 性能监控 +webserver 监控 crash日志
来源:互联网 发布:网络词蜜汁是什么意思 编辑:程序博客网 时间:2024/06/14 03:33
1.相关链接:https://testerhome.com/topics/6468
https://testerhome.com/topics/9329
2.项目源码:https://github.com/Louis-me/CrashHandler
本帖子基于上篇帖子python+appium 开源框架分享
最新更新
- 去掉了对全局变量的依赖,现在用的是txt,后面优化成其他持久化数据的方式
- 新增对多机android运行
- 对多机日志监控
代码部分
- 用yaml设置多设备
appium: - devices: JTJ4C16331013562 port: 4723 config: node D:\app\Appium\node_modules\appium\bin\appium.js -p 4723 -bp 4733 platformName: android - devices: MSM8926 port: 4724 config: node D:\app\Appium\node_modules\appium\bin\appium.js -p 4724 -bp 4734 platformName: android
- 启动
class AppiumServer: def __init__(self, l_devices): self.l_devices = l_devices def start_server(self): """start the appium server :return: """ for i in range(0, len(self.l_devices["appium"])): t1 = RunServer(self.l_devices["appium"][i]["config"]) p = Process(target=t1.start()) p.start() def stop_server(self): """stop the appium server selenium_appium: appium selenium :return: """ os.system('taskkill /f /im node.exe') def re_start_server(self): """reStart the appium server """ self.stop_server() self.start_server() def is_runnnig(self): """Determine whether server is running :return:True or False """ response = None for i in range(0, len(self.l_devices["appium"])): url = " http://127.0.0.1:"+str(self.l_devices["appium"][i]["port"])+"/wd/hub"+"/status" try: response = urllib.request.urlopen(url, timeout=5) if str(response.getcode()).startswith("2"): return True else: return False except URLError: return False finally: if response: response.close()class RunServer(threading.Thread): def __init__(self, cmd): threading.Thread.__init__(self) self.cmd = cmd def run(self): os.system(self.cmd)
- 看看入口
def runnerPool(): devices_Pool = [] for i in range(0, len(ga["appium"])): l_pool = [] t = {} t["deviceName"] = ga["appium"][i]["devices"] t["platformVersion"] = phoneBase.get_phone_info(devices=ga["appium"][i]["devices"])["release"] t["platformName"] = ga["appium"][i]["platformName"] t["port"] = ga["appium"][i]["port"] l_pool.append(t) devices_Pool.append(l_pool) pool = Pool(len(devices_Pool)) #根据多个设备名新建多个不同的进程 # for i in range(2): # pool.apply_async(sample_request, args=(t[i],)) # 异步 pool.map(runnerCaseApp, devices_Pool) # runnerCaseApp是case pool.close() pool.join()
看看运行效果
测试报告
主要问题点
- 关于监控crash,我自己写了个jar包,闪退后会记录关键日志到本地,然后推送(用的socket client)到我的框架(socket server,一个设备一个socket server),框架中的socket server监控到闪退信息后,就会读取手机中的错误日志存到测试报告中
- 现在是打的jar包引用到其他app中,一打开就闪退,很费解,一直无法找到原因,希望帮忙指导下
- 打包的jar文件:
- app在appliticon注册
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:name="com.XX.crashhandler.CrashApplication">
其他
- Python与Java之间Socket通信
- Android 重写系统Crash处理类,保存Crash信息到SD卡
更新
- 已经解决把自定义获取app的crash日志,并以http get发送给我的框架中的web server,要注意
- 引用jar包时,要放到libs目录(我放在其他目录直接不行)
- 电脑和手机要在同一个网络
- 如果感兴趣,可以看看上面的那个重写crash处理类的链接,我已经更新到最新代码
- 后续会继续在此帖子中更新
阅读全文
0 0
- 开源框架 appium+python (二) 支持多设备并行 + 性能监控 +webserver 监控 crash日志
- appium+python 多设备并行执行脚本
- python 嵌入式webserver 服务器 状态监控
- Python监控动态日志
- python 分析监控日志
- MongoDB支持Memcache性能监控
- Python磁盘监控、日志分析监控脚本
- python动态监控日志内容
- 性能分析框架和性能监控平台
- linux实战(二)----shell脚本监控实例-----日志截取三个命令在性能监控等运用中的实例解析
- linux实战(二)----shell脚本监控实例-----日志截取三个命令在性能监控等运用中的实例解析
- 新功能:已支持MongoDB性能监控
- 容器的性能监控和日志管理
- 日志监控
- 监控日志
- JavaMelody开源系统性能监控
- JavaMelody开源系统性能监控
- JavaMelody开源系统性能监控
- Java容器-整体结构
- s3c2410_gpio_setpin()系列函数
- 在基于Node.js的IoT框架Zetta中实现可变间隔发送数据
- pyhton matplotlib显示中文
- Hibernate中Criteria的完整用法
- 开源框架 appium+python (二) 支持多设备并行 + 性能监控 +webserver 监控 crash日志
- matlab学习中遇到的问题整理
- 写一个调色板控件(1)
- MySQL GTID 主从复制错误修复方法
- FPGA 提高 时序的方法
- 使用Anaconda解决Python 2X与python 3X的共存问题
- datagrid里边的combobox获取当前row的索引(总结于EasyUI中文社区群讨论)
- Swift_继承
- 3.栈和队列