




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、几款 Android应用自动化测试工具简述:本文介绍几款流行的Android应用自动化测试工具。Monkey测试:随机测试,压力测试,运行在模拟器或实际设备中。MonkeyRunner测试:操作简单,可录制测试脚本,可视化操作,主要生成坐标的自动化操作,移植性不强Robotium 测试Ronaorex 测试Appium 测试UI Automator测试TestBird测试1、Monkey 测试Monkey 即猴子, Monkey 测试,就像一只猴子,在电脑面前,乱敲键盘在测试。Monkey 测试主要用于 Android 应用程序压力测试的小工具, 主要目的就是为了测试 app 是否会Crash
2、。Monkey 测试原理: Monkey 是 Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流( 如按键输入、触摸屏输入、手势输入等) ,实现对正在开发的应用程序进行压力测试。通常也称随机测试或者稳定性测试。Monkey 测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。1 Monkey特征测试的对象仅为应用程序包,有一定的局限性。Monky 测试使用的事件流数据流是随机的,不能进行自定义。可对 MonkeyTest 的对象,事件数量,类型,频率等进行设置。D.Monkey 虽可根据一个指定的命令脚本发送按键消息,但其不支持条件判断,也不支
3、持读取待测界面的信息来执行验证操作。E.Monkey 运行在设备或模拟器上面, 可以脱离 PC运行,验证待测应用在这些随机性输入面前是否会闪退或者崩溃。2 Monkey程序介绍 Monkey 程序由 Android系统自带,使用 Java 语言写成,在 Android 文件系统中的存放路径是: /system/framework/monkey.jar; Monkey.jar 程序是由一个名为 “ monkey ”的 Shell 脚本来启动执行, shell 脚本在 Android 文件系统中 的存放路径是: /system/bin/monkey ; Monkey 命令启动方式:a.可以通过 P
4、C 机 CMD 窗口中执行 : adb shell monkey+命令参数来进行Monkey测试b.在 PC上 adb shell进入 Android 系统,通过执行monkey + 命令参数 来进行 Monkey 测试c.在 Android 机或者模拟器上直接执行monkey命令,可以在 Android 机上安装 Android 终端模拟器 对特定 APP包进行测试的命令为adb shell monkey -p 3实例 测试前提条件将手机恢复出厂设置恢复出厂设置后,进入设置 - 关于手机 - 高级设置 - 勾选保持唤醒状态c.在设置 - 安全中设置解锁图案以及PIN 码d.连接 adb to
5、ole.手机开启后台log(*#*#3646633#*#*),开启 main log,, mobile log和 net log 测试步骤使用 USB线连接手机和电脑在电脑中输入 Monkey命令:adb shell monkey -p -throttle 380 -v -s3500 300000 C:monkey_log.txt在 Monkey 结束以后查看它停留的界面并且做一些简单的测试,如拨打电话,发送信息等 测试结果Monkey的测试结果可以通过monkey_log.txt查看,如果测试结果正常,在log 最后一行会有monkey finished显示并且手机运行正常。如果应用程序产生
6、了应用程序不响应ANR(applicationnotresponding)的错误, Monkey将会停止并报错,如果应用程序崩溃Crash 或接收到任何失控异常,Monkey也会停止并报错。a.在运行Monkey命令时,遇到Crash或者ANR,就会自动终止。程序无响应的问题: 在日志中搜索“ANR”b. 崩溃问题:在日志中搜索“Exception”(如果出现空指针,NullPointerException)肯定是有 bug例如在 log 最后一行显示crashed at event #of 300000 using seed 3500。c. 最后搜索“ error ”一般我们执行Monkey
7、时,在 3 万次以内发生Crash 的话就认为 Monkey是有问题的, 要提交 PR。 提交 Monkey 的 PR在执行 Monkey命令时发生Crash 或者 ANR时需要提交 PR,具体提交 MonkeyPR的规则如下:a.标题:在 PR标题中加上 Monkey内容:主要要包含自己执行的命令以及在多少次发生crashb.内容:主要要包含自己执行的命令以及在多少次发生crashc . 其它:在 PR上要附上相关的 Monkey log 还有手机后台开启的 log ,如果有相关的强制关闭的图片也可以贴上。4 Monkey参数Monkey命令: adb shell monkey -p -th
8、rottle 380 -v -s 3500300000 C:monkey_log.txt,这个 monkey命令,当 monkey test过程中遇到 Crash 或者 ANR,就会自动终止。C:monkey_log.txt指将 Monkey 的 log 存在 PC端的 C盘根目录下。常规类参数1、 -help作用:列出简单的用法例: adb shell monkey -help也可不写 help2、-v作用:命令行上的每一个-v 都将增加反馈信息的详细级别。Level0 (默认),除了启动、测试完成和最终结果外只提供较少的信息。Level1 ,提供了较为详细的测试信息,如逐个发送到Activ
9、ity的事件信息。Level2 ,提供了更多的设置信息,如测试中选中或未选中的Activity信息。比较常用的是 -v -v -v ,即最多详细信息,一般会保存到指定文件中供开发人员查找bug 原因时使用。例: adb shell monkey -v 10事件类参数1、-s 作用:伪随机数生成器的 seed 值。如果用相同的 seed 值再次运行 monkey,将生成相同的事件序列。例:2、-throttle 作用:在事件之间插入固定的时间(毫秒)延迟,你可以使用这个设置来减缓度,如果你不指定这个参数,则事件之间将没有延迟,事件将以最快的速度生成。Monkey 的运行速注:常用参数,一般设置为
10、300 毫秒,原因是实际用户操作的最快300 毫秒左右一个动作事件,所以此处一般设置为300 毫秒。例: adb shell monkey -throttle 300 -v 103、-pct-touch 作用:调整触摸事件的百分比。 (触摸事件是指在屏幕中的一个下并抬起的操作)down-up 事件,即在屏幕某处按注:常用参数,此参数设置要适应当前被测应用程序的操作,比如一个应用80%的操作都是触摸,那就可以将此参数的百分比设置成相应较高的百分比。例: adb shell monkey -pct-touch 100 -v 104、-pct-motion 作用:调整motion 事件百分比。(mo
11、tion事件是由屏幕上某处一个down事件、一系列伪随机的移动事件和一个up 事件组成)注:常用参数,需注意的是移动事件是直线滑动例: adb shell monkey -pct-motion 100 -v 105、-pct-trackball作用:调整滚动球事件百分比。 (滚动球事件由一个或多个随机的移动事件组成, 有时会伴随着点击事件)注:不常使用参数, 现在手机几乎没有滚动球, 但滚动球事件中包含曲线滑动事件, 在被测程序需要曲线滑动时可以选用此参数。例: adb shell monkey -pct-trackball 100 -v 106、-pct-nav作用:调整基本的导航事件百分比
12、。(导航事件由方向输入设备的上下左右按键所触发的事件组成)注:不常用操作。例: adb shell monkey -pct-nav 100 -v 107、-pct-majornav作用:调整主要导航事件的百分比。 (这些导航事件通常会导致 UI 界面中的动作事件, 如 5-way 键盘的中间键,回退按键、菜单按键)注:不常用操作。例: adb shell monkey -pct-majornav 100 -v 108、-pct-syskeys作用:调整系统事件百分比。(这些按键通常由系统保留使用,如Home、Back、 Start Call、EndCall 、音量调节)注:不常用。例: adb
13、 shell monkey -pct-syskeys 100 -v 109、-pct-appswitch作用:调整 Activity启动的百分比。(在随机的时间间隔中, Monkey将执行一个startActivity()调用,作为最大程度覆盖被测包中全部Activity的一种方法)注:不常用。例: adb shell monkey -pct-appswitch 100 -v 510、 -pct-anyevent作用:调整其他事件的百分比。 (这包含所有其他事件,如按键、其他在设备上不常用的按钮等)注:不常用。例: adb shell monkey -pct-anyevent 100 -v 5
14、约束类参数1、-p作用:如果你指定一个或多个包, Monkey将只允许访问这些包中的 Activity 。如果你的应用程序需要访问这些包 ( 如选择联系人 ) 以外的 Activity ,你需要指定这些包。 如果你不指定任何包, Monkey 将允许系统启动所有包的 Activity 。指定多个包,使用多个 -p ,一个 -p 后面接一个包名。注:常用参数。例:2、-c作用:如果你指定一个或多个类别, Monkey将只允许系统启动这些指定类别中列出的 Activity 。如果你不指定任何类别, Monkey将选择谢列类别中列出的 Activity ,Intent.CATEGORY_LAUNCH
15、ER和Intent.CATEGORY_MONKEY。指定多个类别使用多个-c ,每个 -c 指定一个类别。注:不常用。3、-dbg-no-events作用:设置此选项, Monkey将执行初始启动,进入一个测试 Activity 件。为了得到最佳结果,结合参数 -v ,一个或多个包的约束,以及一个保持时间的非零值,从而提供了一个可以监视应用程序所调用的包之间转换的环境。,并不会在进一步生成事 Monkey 运行 30 秒或更长注:不常用。4、-hprof作用:设置此选项, 将在 Monkey生成事件序列前后生成profilling报告。在data/misc路径下生成大文件( 5Mb),所以要小
16、心使用。注:不常用。5、-ignore-crashes作用:通常,应用发生崩溃或异常时 Monkey 会停止运行。如果设置此项, Monkey将继续发送事件给系统,直到事件计数完成。注:常用。6、-ignore-timeouts作用:通常,应用程序发生任何超时错误(如“ Application Not responding ”对话框) Monkey 将停止运行,设置此项, Monkey将继续发送事件给系统,直到事件计数完成。注:常用。7、-ignore-security-exception作用:通常,当程序发生许可错误 (例如启动一些需要许可的 Activity )导致的异常时, Monkey
17、 将停止运行。设置此项, Monkey将继续发送事件给系统,直到事件计数完成。注:常用。8、-kill-process-after-error作用:通常,当 Monkey 由于一个错误而停止时,出错的应用程序将继续处于运行状态。设置此项,将会通知系统停止发生错误的进程。注意,正常(成功)的结束,并没有停止启动的进程,设备只是在结束事件之后简单的保持在最后的状态。9、-monitor-native-crashes作用:监视并报告 Andorid 系统中本地代码的崩溃事件。 如果设置 -kill-process-after-error,系统将停止运行。10、 -wait-dbg作用:停止执行中的M
18、onkey,直到有调试器和它相连接。样例:-v -v -v -s 3500 300000 E:Testmonkey_log.txt测试结果:测试完成后均正确时会显示Monkey finished:Events injected: 300:Sending rotation degree=0, persist=false:Dropped: keys=0 pointers=2 trackballs=0 flips=0rotations=0Network stats: elapsed time =42700ms (0ms mobile, 0ms wifi, 42700ms not connected)
19、/ Monkey finished有 bug 时, 会出现 error :Monkey aborted due to error. Events injected: 8530:Sending rotation degree=0, persist=false :Dropped: keys=5 pointers=8 trackballs=0 flips=0 rotations=0# Network stats: elapsed time =1016690ms (0ms mobile, 0ms wifi, 1016690ms notconnected)2、 MonkeyRunner 测试Monkey
20、Runner工具是使用 Jython ( 使用 Java 编程语言实现的 Python) 写出来的,它提供了多个API,通过 MonkeyRunner API 可以写一个 Python 的程序来模拟操作控制 Android 设备 app,测试其稳定性并通过截屏可以方便地记录出现的问题。MonkeyRunner和 Monkey没有直接的关系。 Monkey是在设备 / 模拟器直接运行 adb shell 命令生成用户或系统伪随机事件流来进行测试的。而 MonkeyRunner则运行在 PC上,需要通过服务器 / 客户端的的模式向设备或者模拟器上的 android 应用发送指令来执行测试。它支持自
21、己编写插件 , 控制事件 , 随时截图 , 简而言之 , 任何你在模拟器 / 设备中能干的事情 ,MonkeyRunner 都能干 , 而且还可以记录和回放。1 MonkeyRunner特征1)MonkeyRunner 工具在工作站上通过API 定义的特定命令和事件控制设备或模拟器(可控)2)精确控制事件之间的事件3)可以进行:点触屏、拖拽、长按、键盘事件4)可以智能截图对比和判断5)回溯出详细具体的BUG路径2 MonkeyRunner优缺点1) 能完全模拟人工所有操作2) 有详细的 API 文档参考3) 可以写出智能图像对比脚本4) 支持 java和 Python两种语言脚本5) 脚本移植
22、性差3 MonkeyRunner测试类型1)多设备控制MonkeyRunnerAPI 可以跨多个设备或模拟器实施测试套件。您可以在同一时间接上所有的设备或一次启动全部模拟器(或统统一起),依据程序依次连接到每一个,然后运行一个或多个测试。您也可以用程序启动一个配置好的模拟器,运行一个或多个测试,然后关闭模拟器。2)功能测试MonkeyRunner可以为一个应用自动贯彻一次功能测试。您提供按键或触摸事件的输入数值,然后观察输出结果的截屏。3)回归测试MonkeyRunner可以运行某个应用,并将其结果截屏与既定已知正确的结果截屏相比较,以此测试应用的稳定性。4)可扩展的自动化由于 MonkeyR
23、unner是一个 API 工具包,您可以基于Python 模块和程序开发一整套系统,以此来控制 Android 设备。除了使用 MonkeyRunner API 之外,您还可以使用标准的Python os 和 subprocess模块来调用 Android Debug Bridge这样的 Android 工具。4 MonkeyRunner 工具MonkeyRunner API 主要包括三个模块1)MonkeyRunner:此类提供连接真机和模拟器方法waitForConnection (float timeout,stringdeviceid),还提供了创建用户界面显示信息的alert()方法
24、。2)MonkeyDevice代表一个设备或模拟器。此类提供了安装和卸载程序包、开启 Activity 、发送按键和点击事件、运行测试包等方法拖拉控件 drag(tuple start,tuple end, floatduration,integer steps) /duration手势持续时间按键 press(string keycode, dictionary type) /keycode: KEYCODE_HOME,.type:DOWN ,UP,DOWN_AND_UP.安装应用 installPackage(pc端存放 apk 路径 )启动应用 starActivity (package
25、+/+activity)/一个参数点击 touch(integer x,integer y, integer type) /type:DOWN,UP,DOWN_AND_UP.输入 type(string message)截屏 takeSnapshot()3)MonkeyImage这个类提供了捕捉屏幕的方法。在测试过程中用来保存测试截图,将位图保存为各种格式,并可以比较两个MonkeyImage对象,将 image 保存到文件等。图像对比 sameAs (MonkeyImage other,float percent)/对比的相似度,结果boolean 类型图像保存 writetoFile (s
26、tring path,string format)5 MonkeyRunner环境搭建Monkeyrunner 的环境搭建,需要安装以下工具:jdk 、 android sdk、python 编译器。MonkeyRunner 环境搭建Eclipse中 MonkeyRunner环境搭建6 MonkeyRunner运行运行有两种方式 在 CMD命令窗口直接运行monkeyrunner 使用 Python 编写测试代码文件,在CMD中执行 monkeyrunner xxx.py运行不论使用哪种方式,您都需要调用SDK目录的 tools子目录下的monkeyrunner 命令。1)模拟器启动在运行 m
27、onkeyrunner 之前必须先运行相应的模拟器或连接真机,否则 monkeyrunner 无法连接到设备运行模拟器有两种方法:1、通过 eclipse中执行模拟器2 、在 CMD中通过命令调用模拟器这里介绍通过命令,在CMD中执行模拟器的方法emulator -avd AVD_test上面命令中 AVD_test是指模拟器的名称。2)交互对话环境cmd 运行 monkeyrunner交互命令“ monkeyrunner ” 或:monkeyrunner -plugin3)cmd 终端导入 monkeyrunner 所要使用的模块MonkeyDevice, MonkeyImage然后便可以开
28、始利用monkeyrunner 进行测试了。3) 模拟器连接device= MonkeyRunner.waitForConnection (6,emulator-5554)参数 1:超时时间,单位秒,浮点数,默认是无限期地等待。参数 2:指定的设备名称device_id ,默认为当前设备(手机优先,其次为模拟器)4) app安装模拟器启动成功后,安装apkdevice.installPackage (F:QQyinle_439.apk)其中,参数为apk 的相对路径。成功返回true ,且模拟器的IDLE 界面可看到安装apk 图标5)app 启动device.startActivity (c
29、omponent=package名/.activity)如何获取一个app 的 package 名和 activity?使用#apk 路径中一定不能有空格aapt dump badging F:QQyinle_439.apk或aapt dump badging F:QQyinle_439.apk F:log.txt所以:device.startActivity(component=命令执行后,模拟器上的 app 被启动。启动成功后,便可以向模拟器发送如按键、滚动、截图、存储等操作了6)问题: CMD运行提示 monkeyrunner 不是内部或外部命令,也不是可运行的程序或批处理文件。解决:电
30、脑环境变量未配置,将monkeyrunner 所在目录配在环境变量里。变量名: Path变量值: D:androidandroid -sdk-windowstools; D:androidandroid-sdk-windowsplatform-tools7 样例( Monkeyrunner 运行 python 脚本)test.py#-*-UTF-8-*-#如果导入的模块起了别名,后面就必须使用别名mrmdimportMonkeyImage as mi#连接设备或虚拟器。#参数 1,超时时间,单位秒,默认无限期等待;参数2,设备名称,默认当前设备#向设备或模拟器安装apk, 以下两种方式都是对的
31、device.installPackag e(D:baiduliulanqi_186.apk)#device.installPackage (D:/baiduliulanqi_186.apk)#启动 APPmr.sleep(3)#点击搜索框# 指定位置发送触摸事件device.touch(100,100,DOWN_AND_UP)mr.sleep(1)#输入查询词device.type(test)mr.sleep(1)#点击回车键# 发送指定类型键码的事件device.press(KEYCODE_ENTER,DOWN_AND_UP)mr.sleep(2)#截图result= device.tak
32、eSnapshot()#保存到文件result.writeToFile (./test.png,png)#清除搜索框device.touch (100,100, DOWN_AND_UP)mr.sleep(1)device.press (KEYCODE_DEL, DOWN_AND_UP)mr.sleep(2)#字符串发送到键盘#device.type(字符串 )device.type(Findyou)#唤醒设备屏幕#锁屏后 , 屏幕关闭,可以用下命令唤醒device.wake()#重起手机device.reboot()#模拟滑动#device.drag(X,Y,D,S)#X 开始坐标#Y 结束坐
33、标#D 拖动持续时间 ( 以秒为单位 ) ,默认 1.0 秒#S 插值点时要采取的步骤。默认值是10device.drag(100,1053),(520,1053),0.1,10)运行测试脚本test.py:monkeyrunner test.pymonkeyrunner 录制和回放录制: monkey_recorder.pymrMonkeyRecorder as recorderdevice=mr.waitForConnection()recorder.start(device)在 cmd 命令行运行 monkeyrunner monkey_record.py, 会弹出一个 MonkeyRe
34、cord窗口界面该窗口的功能:可以自动显示手机当前的界面自动刷新手机的最新状态点击手机界面即可对手机进行操作,同时会反应到真机,而且会在右侧插入操作脚本wait : 用来插入下一次操作的时间间隔,点击后即可设置时间,单位是秒Press a Button :用来确定需要点击的按钮,包括 menu、home、search ,以及对按钮的 press 、down、up 属性 Type Something :用来输入内容到输入框Fling :用来进行拖动操作,可以向上、下、左、右,以及操作的范围Export Actions:用来导出脚本,不需要后缀名,也可以添加后缀名.mrRefresh Displa
35、y:用来刷新手机界面,估计只有在断开手机后,重新连接时才会用到用录制函数导出操作的脚本,通过monkey_playback.py函数回放之前的操作回放: monkey_playback.py,import sysmrCMD_MAP = TOUCH:lambda dev,arg:dev.touch(*arg),DRAG: lambda dev,arg:dev.drag(*arg),TYPE: lambda dev,arg:dev.type(*arg),PRESS: lambda dev,arg:dev.press(*arg),WAIT: lambda dev,arg:mr.sleep(*arg)
36、def process_file(f,device):for line in f:(cmd,rest)=line.split(|)try:rest = eval(rest)except:print unable to parse optionscontinueif cmd not in CMD_MAP:print unknown command: + cmdcontinueCMD_MAPcmd(device, rest)def main():file = sys.argv1f = open(file,r)device = mr.waitForConnection()process_file(f
37、,device)f.close()if _name_ = _main_main()8其他#卸载设备或模拟器中的APK ,参数为 APK包名print (Uninstall Success!)#发送指定类型指定键码的事件#device.press(参数 1: 键码 , 参数 2: 触摸事件类型 )#参数 1:见#参数 2,如有 TouchPressType() 返回的类型触摸事件类型,有三种。#1、DOWN发送一个 DOWN事件。指定 DOWN事件类型发送到设备,对应的按一个键或触摸屏幕上。#2、UP 发送一个 UP事件。指定 UP事件类型发送到设备,对应释放一个键或从屏幕上抬起。#3、 DOW
38、N_AND_UP发送一个 DOWN事件,然后一个UP事件。对应于输入键或点击屏幕。以上三种事件做为press() 参数或 touch()参数#按下 HOME键device.press(KEYCODE_HOME ,MonkeyDevice.DOWN_AND_UP)#按下 BACK键device.press(KEYCODE_BACK,MonkeyDevice.DOWN_AND_UP)#按下下导航键device.press(KEYCODE_DPAD_DOWN,MonkeyDevice.DOWN_AND_UP)#按下上导航键device.press(KEYCODE_DPAD_UP,MonkeyDevi
39、ce.DOWN_AND_UP)#按下 OK键device.press(KEYCODE_DPAD_CENTER,MonkeyDevice.DOWN_AND_UP)KeyCode:home键 KEYCODE_HOMEback 键 KEYCODE_BACKsend 键 KEYCODE_CALLend 键 KEYCODE_ENDCALL上导航键 KEYCODE_DPAD_UP下导航键 KEYCODE_DPAD_DOWN左导航 KEYCODE_DPAD_LEFT右导航键 KEYCODE_DPAD_RIGHTok 键 KEYCODE_DPAD_CENTER上音量键 KEYCODE_VOLUME_UP下音量
40、键 KEYCODE_VOLUME_DOWNpower 键 KEYCODE_POWERcamera 键 KEYCODE_CAMERAmenu键 KEYCODE_MENU3、Robotium 测试Robotium 是一款常用的免费的Android自动化测试工具软件, 适用于为不同的安卓版本和子版本黑盒测试自动化。 Robotium 测试是用 java 写的。提供了模拟各种手势操作 (点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium 对 Activity,Dialog ,Toast ,Menu 都是支持的。软件开发人员经常把它描述为Android Selenium 。事实上, Robotium 是一个单元测试库。为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025货车驾驶员劳动合同范本
- 《下消化道出血培训》课件
- (12)-专题06 感悟作文(练习)
- 《新冠病毒防护指南》课件
- 九年级拓展活动式主题班会别让指尖划破我们的梦想 教学设计及反思
- 西安交通工程学院《自动控制原理》2023-2024学年第二学期期末试卷
- 信阳涉外职业技术学院《物理化学实验1》2023-2024学年第二学期期末试卷
- 山东文化产业职业学院《中国哲学概论》2023-2024学年第一学期期末试卷
- 南京师范大学中北学院《社会体育指导员一级》2023-2024学年第二学期期末试卷
- 皖北卫生职业学院《地理信息系统导论实验》2023-2024学年第二学期期末试卷
- 全国青年教师观摩大赛数学赛课一等奖作品教学设计模板(三)
- 蒙特利尔认知评估量表北京版
- 幼儿一日活动安排(大、中、小)
- TSXDZ 052-2020 煤矿矿图管理办法
- YY/T 1778.1-2021医疗应用中呼吸气体通路生物相容性评价第1部分:风险管理过程中的评价与试验
- GB/T 28734-2012固体生物质燃料中碳氢测定方法
- GB/T 19363.2-2006翻译服务规范第2部分:口译
- GB/T 11865-2008船用离心通风机
- GA/T 652-2006公安交通管理外场设备基础施工通用要求
- 高考语文一轮复习:作文素材《长津湖》 课件(53张PPT)
- 《课程与教学论》形考二答案
评论
0/150
提交评论