android 获取monkey日志_安卓app测试之Monkey日志分析

转:原文:https://blog.csdn.net/a136332462/article/details/76066909

一、一般测试结果分析-搜索关键字:

1、无响应问题可以在日志中搜索 “ANR” 。

2、崩溃问题搜索 “CRASH” 。

3、内存泄露问题搜索"GC"(需进一步分析)。

4、异常问题搜索 “Exception”(如果出现空指针, NullPointerException,需格外重视)。

详细说明

1、 ANR问题:在日志中搜索“ANR”(“Application Not Responding"),说明有bug,出现ANR,一般是主线程的响应超过5秒,或者BroadcastReceiver没有在10秒内作出响应。这个就是一个比较严重的缺陷。把耗时的操作另起线程来处理就可以了。

2、 崩溃问题:在日志中搜索“Exception”

二. 详细分析monkey日志:

将执行Monkey生成的log,从手机中导出并打开查看该log;在log的最开始都会显示Monkey执行的seed值、执行次数和测试的包名。

首先我们需要查看Monkey测试中是否出现了ANR或者异常,具体方法如上述。然后我们要分析log中的具体信息,方法如下:

查看log中第一个Switch,主要是查看Monkey执行的是那一个Activity,譬如下面的log中,执行的是com.tencent.smtt.SplashActivity,在下一个swtich之间的,如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。

:Switch:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.tencent.smtt/.SplashActivity;end

// Allowing start of Intent {act=android.intent.action.MAIN cat=

[android.intent.category.LAUNCHER]cmp=com.tencent.smtt/.SplashActivity } in package com.tencent.smtt

在下面的log中,Sending Pointer ACTION_DOWN和Sending Pointer ACTION_UP代表当前执行了一个单击的操作;

Sleeping for 500 milliseconds这句log是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件。

SendKey(ACTION_DOWN) //KEYCODE_DPAD_DOWN   代表当前执行了一个点击下导航键的操作;

Sending Pointer ACTION_MOVE     代表当前执行了一个滑动界面的操作。

:Sending Pointer ACTION_DOWN x=47.0 y=438.0

:Sending Pointer ACTION_UP x=47.0 y=438.0Sleeping for 500 milliseconds

:SendKey (ACTION_DOWN): 20   //KEYCODE_DPAD_DOWN:SendKey (ACTION_UP): 20   //KEYCODE_DPAD_DOWNSleeping for 500 milliseconds

:Sending Pointer ACTION_MOVE x=-2.0 y=3.0

:Sending Pointer ACTION_MOVE x=4.0 y=-3.0

:Sending Pointer ACTION_MOVE x=-5.0 y=-3.0

:Sending Pointer ACTION_MOVE x=3.0 y=4.0

:Sending Pointer ACTION_MOVE x=-4.0 y=1.0

:Sending Pointer ACTION_MOVE x=-1.0 y=-1.0

:Sending Pointer ACTION_MOVE x=-2.0 y=-4.0

如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;// Monkey finished代表执行完成。Monkey执行中断,在log的最后也能查看到当前已执行的次数。Monkey执行完成的log具体如下:

Events injected: 6000

:Dropped: keys=0 pointers=9 trackballs=0 flips=0

## Network stats: elapsed time=808384ms (0ms mobile, 808384ms wifi, 0msnot connected)

// Monkey finished

三、常见问题的具体分析

1、Null指针异常

空指针异常主要是有NullPointerException异常提示,在Monkey测试过程中,该信息一般记录在plog.log (locat中也有该信息)中。

如果Monkey命令被中断,说明有异常信息并且有对应的打印信息,可以看到如下信息,说明几个问题:

A、android.process.acore该进程出现异常

B、异常信息主要是由于NullPointerException引起的,也就是出现了空指针,导致了acore进程进入debug

C、具体的可以继续分析是由哪个函数的那一行导致的,如可以从rollAnimate3dRotate.java文件中的275行查找等。

//at com.android.launcher.LauncherAnimator.ScrollAnimate3dRotate.drawFrame(ScrollAnimate3dRotate.java:275)

D、可能同一应用中存在多处的空指针异常,所以一旦出现空指异常后,可以分析和对比log信息,如果不一致的话,需要把新的log信息也一同添加到bug中,如果log信息一直的话,则不需要继续补充没有必要的log信息。

**************************************************************************

// CRASH: android.process.acore (pid 1339)

// Short Msg: java.lang.NullPointerException

// Long Msg: java.lang.NullPointerException

// Build Label: android:FIH/msm7627_surf/msm7627_surf/F0X:1.6/DONUT/0001_0_020:e

ng/release-keys

// Build Changelist: -1

// Build Time: 1271397239

// ID:

// Tag: AndroidRuntime

// java.lang.NullPointerException:

//   at com.android.launcher.LauncherAnimator.ScrollAnimate3dRotate.drawFrame(ScrollAnimate3dRotate.java:275)

//   at com.android.launcher.Workspace.dispatchDraw(Workspace.java:605)

//   at android.view.ViewGroup.drawChild(ViewGroup.java:1524)

//   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)

//   at com.android.launcher.DragLayer.dispatchDraw(DragLayer.java:258)

//   at android.view.ViewGroup.drawChild(ViewGroup.java:1524)

//   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)

//   at android.view.View.draw(View.java:6329)

//   at android.widget.FrameLayout.draw(FrameLayout.java:352)

//   at android.view.ViewGroup.drawChild(ViewGroup.java:1526)

//   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)

//   at android.view.View.draw(View.java:6329)

//   at android.widget.FrameLayout.draw(FrameLayout.java:352)

//   at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1901)

//   at android.view.ViewRoot.draw(ViewRoot.java:1333)

//   at android.view.ViewRoot.performTraversals(ViewRoot.java:1098)

//   at android.view.ViewRoot.handleMessage(ViewRoot.java:1618)

//   at android.os.Handler.dispatchMessage(Handler.java:99)

//   at android.os.Looper.loop(Looper.java:123)

//   at android.app.ActivityThread.main(ActivityThread.java:4203)

//   at java.lang.reflect.Method.invokeNative(Method.java:-2)

//   at java.lang.reflect.Method.invoke(Method.java:521)

//   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)

//   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)

//   at dalvik.system.NativeStart.main(NativeStart.java:-2)

** System appears to have crashed at event 7908 of 5000000 using seed 0

2、debug异常

debug异常主要是由于应用程序本身的错误导致的异常。在Monkey测试过程中,该信息同样记录在plog.log (locat中也有该信息)中。一般情况下,出现的该问题,很可能在手动测试时也可以测试到。

A、com.android.browser该进程进入debug

B、出现的是IllegalStateException异常,该异常一般多是传递的参数非法或被多次调用时出现的异常

C、Bug信息提交时,详细信息中一般应该包含如下的log信息,方便开发人员分析和定位。

************************************************************************

// CRASH: com.android.browser (pid 5683)

// Short Msg: Connection is not open

// Long Msg: java.lang.IllegalStateException: Connection is not open

// Build Label: android:FIH/msm7627_surf/msm7627_surf/F0X:1.6/DONUT/0001_0_020:eng/release-keys

// Build Changelist: -1

// Build Time: 1271397239

// ID:

// Tag: AndroidRuntime

// java.lang.IllegalStateException: Connection is not open

//   at android.net.http.AndroidHttpClientConnection.assertOpen(AndroidHttpClien

tConnection.java:153)

//   at android.net.http.AndroidHttpClientConnection.setSocketTimeout(AndroidHtt

pClientConnection.java:195)

//   at android.net.http.Connection.openHttpConnection(Connection.java:364)

//   at android.net.http.Connection.processRequests(Connection.java:225)

//   at android.net.http.ConnectionThread.run(ConnectionThread.java:116)

** System appears to have crashed at event 34155 of 5000000 using seed 0**

3、低内存异常

低内存异常一般情况下,主要表现在出现OutOfMemoryError异常或者提示Out of memory,其后果同样表现为抛出OutOfMemoryError异常或者是通过kill process 来杀掉部分进程以释放内存空间,当然如果被kill点关键的进程的话,也就可能导致部分应用会自动的退出。出现该情况时,主要是在进行频繁的进行大量的操作导致的,所以使用手动的方式也是可能进行重现的。

A、com.android.elastos.backup该进程出现的异常

B、出现的是OutOfMemoryError异常,该异常一般多频繁的操作(即多次调用某个函数,存在申请变量空间未释放)导致的

C、Bug信息提交时,详细信息中同样应该包含如下的log信息,方便开发人员分析和定位。

// CRASH: com.android.elastos.backup (pid 1581)

// Short Msg: bitmap size exceeds VM budget

// Long Msg: java.lang.OutOfMemoryError: bitmap size exceeds VM budget

// Build Label: android:FIH/msm7627_surf/msm7627_surf/F0X:1.6/DONUT/0001_0_020:eng/release-keys

// Build Changelist: -1

// Build Time: 1271397239

// ID:

// Tag: AndroidRuntime

// java.lang.OutOfMemoryError: bitmap size exceeds VM budget

//   at android.graphics.Bitmap.nativeCreate(Bitmap.java:-2)

//   at android.graphics.Bitmap.createBitmap(Bitmap.java:464)

//   at android.graphics.Bitmap.createBitmap(Bitmap.java:431)

//   at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:336)

//   at android.widget.AbsListView.preScaleBitmapBG(AbsListView.java:2354)

//   at android.widget.AbsListView.draw(AbsListView.java:2365)

//   at android.view.ViewGroup.drawChild(ViewGroup.java:1526)

//   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)

//   at android.view.View.draw(View.java:6329)

//   at android.view.ViewGroup.drawChild(ViewGroup.java:1526)

//   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)

//   at android.view.View.draw(View.java:6329)

//   at android.widget.FrameLayout.draw(FrameLayout.java:352)

//   at android.view.ViewGroup.drawChild(ViewGroup.java:1526)

//   at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1256)

//   at android.view.View.draw(View.java:6329)

//   at android.widget.FrameLayout.draw(FrameLayout.java:352)

//   at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1901)

//   at android.view.ViewRoot.draw(ViewRoot.java:1333)

//   at android.view.ViewRoot.performTraversals(ViewRoot.java:1098)

//   at android.view.ViewRoot.handleMessage(ViewRoot.java:1618)

//   at android.os.Handler.dispatchMessage(Handler.java:99)

//   at android.os.Looper.loop(Looper.java:123)

//   at android.app.ActivityThread.main(ActivityThread.java:4203)

//   at java.lang.reflect.Method.invokeNative(Method.java:-2)

//   at java.lang.reflect.Method.invoke(Method.java:521)

//   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)

//   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)

//   at dalvik.system.NativeStart.main(NativeStart.java:-2)

** System appears to have crashed at event 143290 of 100000000 using seed 0#

或者出现plog信息的最后出现如下log信息也可能存在同样问题:

<3>[56351.640641] Out of memory: kill process 14177 (app_process) score 247872 or a child

<3>[56351.641121] Killed process 14177 (app_process)

4、操作无响应异常

操作无响应的问题,主要表现在Monkey运行过程中,出现某功能无响应,提示是否“强制关闭“或“等待“,同时会打印出相应的log信息,如下:

A、可以说明com.android.soundrecorder该进程出现的无响应

B、出现的是TimerOut异常,该异常一般出现时一般都会又keyDispatchingTimedOut提示

C、目前,uPhone手机中经常出现操作无响应的几个模块包括:clock、camera、soundrecorder、broser等,根据开发人员分析其他模块也是有可能出现操作无响应的,测试过程中,请多注意。

D、出现无响应异常,一般情况下很难被修复,和发送事件的频率也是有关系的,从质量上来要求的话,要求尽可能的减少出现操作无响应的频率和时间。

// NOT RESPONDING: com.android.soundrecorder (pid 1931)

ANR in process: com.android.soundrecorder (last in com.android.soundrecorder)

Annotation: keyDispatchingTimedOut

CPU usage:

Load: 8.24 / 8.41 / 8.25

CPU usage from 35911ms to 83ms ago:

com.android.soundrecorder: 4% = 3% user + 0% kernel / faults: 997 minor 43 maj

or

mediaserver: 2% = 2% user + 0% kernel / faults: 267 minor 3 major

android.process.media: 2% = 0% user + 1% kernel / faults: 563 minor 194 major

system_server: 1% = 1% user + 0% kernel / faults: 1279 minor 5 major

com.cootek.touchpal: 0% = 0% user + 0% kernel / faults: 180 minor 1 major

sensorserver_ya: 0% = 0% user + 0% kernel / faults: 47 minor 1 major

mmcqd: 0% = 0% user + 0% kernel

app_process: 0% = 0% user + 0% kernel / faults: 203 minor 1 major

com.fihtdc.brservice: 0% = 0% user + 0% kernel / faults: 29 minor

kswapd0: 0% = 0% user + 0% kernel

com.android.settings: 0% = 0% user + 0% kernel / faults: 266 minor

port-bridge: 0% = 0% user + 0% kernel / faults: 19 minor

rpcrouter: 0% = 0% user + 0% kernel

com.android.mms: 0% = 0% user + 0% kernel / faults: 135 minor 8 major

TOTAL: 13% = 8% user + 4% kernel + 0% iowait

procrank:

PID      Vss      Rss      Pss      Uss  cmdline

1209   35368K   25376K   15283K   14036K  system_server

1342   32788K   24596K   14899K   14136K  android.process.acore

……

// procrank status was 0

anr traces:

// meminfo status was 0

** System appears to have crashed at event 59034 of 5000000 using seed 0

5、其他异常

A、Restart System异常(系统重新启动),即log信息的最后几行会看到Restart System的打印信息,说明手机被自动的重启或断掉,有几个方面的原因

1、运行过程中,存在异常手机被自动重启

2、手机在运行过程中,进入设置中的恢复出场设置,导致手机重启

3、其他原因,如果手机后盖移动等

B、RuntimeException等异常,同样的会在plog.log中可以看到相应的打印信息, java.lang.RuntimeException该问题多出现在操作无响应之后,或者是某应用的服务无法启动或连接时,需要具体问题具体的分析

C、StaleDataException、readException等异常, 在plog.log中可以看到相应的打印信息,也会有相应的信息: android.database.StaleDataException,该信息说明android的数据库操作出现异常, 需要具体问题具体的分析

D、IllegalArgumentException等异常,多少情况下为说明向函数传递了一个不正确或不合法的参数需要具体问题具体的分析

E、其他,带补充和分析说明

说明几点:

1、log信息的分析,希望在bug信息的简述中能够明确说明清楚出现的是什么异常,具体的log信息要单独添加到详细信息描述中,方便相关人员定位和查看。

2、buy的提交,对于Monkey测试出现的问题:

a、首先要求分析log信息

b、再次要确认该bug是否已经提交?已经提交的bug和新运行出来的问题是否一致?

c、如果不一致的话,是否属于同一问题,如空指针异常,是的话就把该问题的log信息一起注释到bug信息中,并添加所有的log信息

d、如果不一致的,也不属于同一问题的话,可以提交新的bug

3、在java编程中,一般的异常都会抛出xxx Exception的信息,可以跟进xxx进行相关的判断和分析,具体的异常则需要具体问题具体分析。

6、常见的java异常

算术异常类:ArithmeticExecption

空指针异常类:NullPointerException

类型强制转换异常:ClassCastException

数组负下标异常:NegativeArrayException

数组下标越界异常:ArrayIndexOutOfBoundsException

违背安全原则异常:SecturityException

文件已结束异常:EOFException

文件未找到异常:FileNotFoundException

字符串转换为数字异常:NumberFormatException

操作数据库异常:SQLException

输入输出异常:IOException

违法访问错误:IllegalAccessError

内存不足错误:OutOfMemoryError

堆栈溢出错误:StackOverflowError 1

四.percent相关命令控制了事件类型,如果我们不指定事件类型。生成的报告中,事件占比大致如下:

// Event percentages:

// 0: 15.0%

// 1: 10.0%

// 2: 2.0%

// 3: 15.0%

// 4: -0.0%

// 5: 25.0%

// 6: 15.0%

// 7: 2.0%

// 8: 2.0%

// 9: 1.0%

// 10: 13.0%

这里将事件分为了10种类型,分别为:

0:触摸事件百分比,即参数--pct-touch

1:滑动事件百分比,即参数--pct-motion

2:缩放事件百分比,即参数--pct-pinchzoom

3:轨迹球事件百分比,即参数--pct-trackball

4:屏幕旋转事件百分比,

5:基本导航事件百分比,即参数--pct-nav

6:主要导航事件百分比,即参数--pct-majornav

7:系统事件百分比,即参数--pct-syskeys

8:Activity启动事件百分比,即参数--pct-appswitch

9:键盘翻转事件百分比,即参数--pct-flip

10:其他事件百分比,即参数--pct-anyevent

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

只提取单元格中的数字_提取Excel单元格中的数字(4类)及原理

文中总结了4类从包含有中文、字母、数字的单元格数据中只提取数字的公式。(使用的时候把单元格名称改为实际的单元格名称即可)。1.提取文本左侧数据当单元格中数字在左侧&#xff0c;文字内容在右侧时&#xff0c;我们可以使用一下公式来将数字快速提取出来。函数公式&#xff…

delphi 执行长时间存储过程 显示进度_项目管理_十大管理体系之「项目进度管理」知识整理及心得分享...

项目进度管理项目进度管理在项目是项目管理三大要素之一&#xff0c;在项目管理中占有非常重要的地位。往往很多项目要求进度节点是一个固定期限&#xff0c;无法修改&#xff0c;所以进度把控就显得尤为重要。什么是进度管理&#xff0c;在你写project项目计划时就非常清楚的可…

bettertouchtool闪退_BetterTouchTool for Mac 3.238 无闪退 触控板增强工具

BetterTouchTool为魔术鼠标添加了许多新的完全可自定义的手势&#xff0c;Multi-Touch MacBook触控板和Magic Trackpad。这些手势是可定制的&#xff1a;魔术鼠标&#xff1a;捏合/缩小(缩放)单指点击左边单指轻拍右键单指中间单指轻拍单指点击中间双指轻敲双指点击双指轻扫(上…

宝塔php扩展fil_宝塔面板安装Redis给WordPress网站加速优化教程

宝塔面板php安装redis缓存以加快WordPress的开启速度&#xff0c;因为WordPress打开速度慢&#xff0c;所以霜天 seo使用多种方式来提高wordpress的加载速度&#xff0c;其中一个好办法是&#xff1a;使用redis加速缓存。本文的主题是宝塔面板php安装redis缓存加速WordPress&am…

常量缓存与integer比较_Integer缓存范围到底是多少?

本文主要大致思路为&#xff1a;不管从工作中还是面试&#xff0c;这篇文章都应该好好看完&#xff0c;本人认为是非常有用的。案例Integer是基本类型int的封装类。平时不管是入坑多年的小伙伴还在入坑路上的小伙伴&#xff0c;都应该知道的使用频率是相当高。下面模仿订单支付…

mysql数据库中删除列的内容_如何在数据库中删除列

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

mysql语句创建临时表并存入数据_mysql实例:在存储过程中创建临时表并储存数据...

在mysql存储过程中创建临时表&#xff0c;并保存数据到该表&#xff0c;然后根据存储过程调用的例子。是学习mysql存储过程的好例子&#xff0c;值得参考。代码&#xff1a;mysql>mysql> CREATE TABLE Employee( //创建普通表-> id int,-> first_name VARCHAR(15),…

虚拟主机安装mysql_如何虚拟主机安装mysql

匿名用户1级2008-10-20 回答在虚拟机上安装mysql的步骤为&#xff1a;1、下载MySQL-5.5.24-1.rhel5.i386.tar在/usr/local 下建立必要文件夹# cd /usr/local# mkdir mysql# cd /usr/local/mysql# mkdir src# mkdir data用xftp将MySQL-5.5.16-1.rhel5.i386.tar 上传到虚拟机src目…

mysql多副本搭建_一个简单的MySQL多实例环境搭建

安装mysql初始化两个数据库目录mysql_install_db --datadir/usr/local/var/mysql1 --usermysqlmysql_install_db --datadir/usr/local/var/mysql2 --usermysql修改数据库目录属性chown -R mysql /usr/local/var/mysql1chown -R mysql /usr/local/var/mysql2制作多实例启动服务c…

supervisor 子进程退出_用supervisor监管你的程序,不用担心程序挂了

1.背景无论多么优秀的程序员都难以避免写出来的程序会有崩溃的一天&#xff0c;特别是c、c这种高技术含量的语言&#xff0c;一不小心就来个段错误&#xff08;segment fault&#xff09;,我们通常会写一个守护进程或者守护脚本&#xff0c;检测对应的进程是否退出&#xff0c;…

pta7-3 统计不及格人数_应用统计专硕院校专业难度分析【青岛大学、苏大、西安交通大学】...

原文链接&#xff1a;应用统计专硕院校专业难度分析【第十二期】​mp.weixin.qq.com应用统计专硕院校专业难度分析 【第十二期】TO&#xff1a;哈喽&#xff0c;小可爱们早上给你好呀&#xff01;今天安安姐给你们更新经济类6个专硕院校专业难度分析专题第十二期&#xff0c;大…

mysql数据库事务有几种特性_面试官:你能说说事务的几个特性是啥?有哪几种隔离级别?...

1、面试题事务的几个特点是什么&#xff1f;数据库事务有哪些隔离级别&#xff1f;MySQL的默认隔离级别&#xff1f;2、面试官心里分析用mysql开发的三个基本面&#xff1a;存储引擎、索引&#xff0c;然后就是事务&#xff0c;你必须得用事务。因为一个业务系统里&#xff0c;…

typescript索引类型_typescript入门:高级类型

学习typescript中 &#xff0c;有一个小伙伴提出了一个问题const a {a:1,b:2,c:3}复制代码如何取到每个键上的值 &#xff0c;组成一个联合类型 &#xff1f; 即得到一个类型为type forA "1" | "2" | "3"复制代码一位大神给出了答案const a {…

latex 图片大小_用LaTeX写作业——插入图片(二)

&#xfeff;方法 subfigure可以横向排列一组图片&#xff0c;会自动编号abcd。在一个 subfigure内使用minipage插入图片&#xff0c;通过控制图片大小实现换行效果 # 效果 代码usepackage{subfigure} %所需宏包 usepackage{graphicx}begin{figure}[htbp] centersubfigure[标题…

python中单例模式是什么_python中的单例模式

单例模式(Singleton Pattern)是一种常用的软件设计模式&#xff0c;该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中&#xff0c;某个类只能出现一个实例时&#xff0c;单例对象就能派上用场。比如&#xff0c;某个服务器程序的配置信息存放在一个文件中…

rpm包安装mysql配置文件目录_CentOS6.5系统下RPM包安装MySQL5.6

1.新开的云服务器&#xff0c;需要检测系统是否自带安装mysqlyum list installed | grep mysql2.如果发现有系统自带mysql&#xff0c;果断这么干yum -y remove mysql-libs.x86_643.随便在你存放文件的目录下执行&#xff0c;这里解释一下&#xff0c;由于这个mysql的yum源服务…

单链表的代码python_python版本单链表实现代码

今天看了一下数据结构的书&#xff0c;发现其实数据结构没有几种&#xff0c;线性表&#xff0c;数组&#xff0c;字符串&#xff0c;队列和栈&#xff0c;等等&#xff0c;其实是一回事&#xff0c;然后就是树结构&#xff0c;图结构。数据结构的理论并不难&#xff0c;主要是…

python csv文件复制时的编码问题_使用python读取CSV文件时的编码问题

尝试使用python读取CSV文件时遇到障碍。更新&#xff1a;如果只想跳过字符或错误&#xff0c;可以打开文件&#xff0c;如下所示&#xff1a;with open(os.path.join(directory, file), r, encoding"utf-8", errors"ignore") as data_file:到目前为止&…

zabbix mysql脚本_zabbix监控mysql脚本

vim /usr/local/scripts/mysql_status.sh#!/bin/bash#Desc&#xff1a;zabbix 监控 MySQL 状态#Date&#xff1a;2020-09-05#by&#xff1a;Luojq#主机HOST"localhost"#用户USER"root"#密码PASSWORD"123456"#端口PORT"3306"#MySQL连接…

java rsa算法_求RSA算法JAVA实现源代码(带界面的)

展开全部import javax.crypto.Cipher;import java.security.*;import java.security.spec.RSAPublicKeySpec;import java.security.spec.RSAPrivateKeySpec;import java.security.spec.InvalidKeySpecException;import java.security.interfaces.RSAPrivateKey;import java.sec…