CTS测试最多能几台电脑同时运行命令

Google CTS自动测试的意义和实现--《电脑与电信》2013年06期
Google CTS自动测试的意义和实现
【摘要】:阐述了Google CTS认证所存在的意义和实现的具体方法,并对测试成本进行了较为细致的评估。CTS自动测试对整个Android系统的生态圈良好的发展有着非比寻常的重要作用,而且简单易行,费用低廉。
【作者单位】:
【关键词】:
【分类号】:TP311.52【正文快照】:
1.引言随着Google Android移动平台的普及和应用,GoogleCTS慢慢为人们所关注,CTS是Compatibility Test Suite的缩写,因为,设备只有通过了Google的CTS认证,才能被允许使用Google Play中数量庞大、多姿多彩的应用程序。2.Google CTS认证的意义Google CTS认证对整个Android生态
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【相似文献】
中国期刊全文数据库
任树怀,孙桂春;[J];图书情报工作;2004年08期
;[J];国家图书馆学刊;2005年02期
苏云;[J];甘肃科技;2005年02期
王新月;[J];信息技术教育;2004年02期
罗曼,唐琼,张春华;[J];情报资料工作;2005年03期
晏磊;[J];新世纪图书馆;2005年02期
薛明;[J];沈阳大学学报;2004年03期
;[J];新电脑;2003年09期
;[J];大学图书馆学报;2005年01期
宋显彪;;[J];深图通讯;2005年02期
中国重要会议论文全文数据库
丁晓安;徐伯夏;;[A];全国第五届信号和智能信息处理与应用学术会议专刊(第一册)[C];2011年
赵凡;孙明;;[A];中国农业工程学会电气信息与自动化专业委员会、中国电机工程学会农村电气化分会科技与教育专委会2010年学术年会论文摘要[C];2010年
萨晓静;;[A];福建省图书馆学会2008年学术年会论文集[C];2008年
宋岩;;[A];’2004计算机应用技术交流会议论文集[C];2004年
刘晓倩;陈媛嫄;刘正捷;;[A];第七届和谐人机环境联合学术会议(HHME2011)论文集【poster】[C];2011年
邢野;;[A];第二十五届中国(天津)2011’IT、网络、信息技术、电子、仪器仪表创新学术会议论文集[C];2011年
郝玉峰;程显峰;李科;;[A];第十一届全国人机语音通讯学术会议论文集(一)[C];2011年
中国重要报纸全文数据库
;[N];中国计算机报;2008年
;[N];计算机世界;2008年
;[N];人民邮电;2008年
杨庆;[N];人民邮电;2011年
刘方远;[N];21世纪经济报道;2011年
舒杰;[N];通信产业报;2011年
本报实习记者
杨昕;[N];通信信息报;2011年
武金刚;[N];电脑报;2003年
遥逸;[N];人民邮电;2011年
电脑报 吴新;[N];电脑报;2011年
中国博士学位论文全文数据库
龚爱平;[D];浙江大学;2013年
中国硕士学位论文全文数据库
赵士田;[D];山东大学;2011年
潘士强;[D];昆明理工大学;2011年
叶炳发;[D];暨南大学;2010年
郭凯敏;[D];新疆大学;2011年
周连强;[D];华南理工大学;2011年
李凯;[D];华南理工大学;2011年
刘瑞顺;[D];汕头大学;2011年
董剑;[D];复旦大学;2011年
胡锐;[D];华南理工大学;2011年
刘昶;[D];北京理工大学;2011年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 知识超市公司
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号文档分类:
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,
下载前请先预览,预览内容跟原文是一样的,在线预览图片经过高度压缩,下载原文更清晰。
您的浏览器不支持进度条
淘豆网网友近日为您收集整理了关于GoogleCTS自动测试的意义和实现的文档,希望对您的工作和学习有所帮助。以下是文档介绍:l学术探讨经验交流_二丰=二{ 二三二二=二二二= 』2tll3牟第6翱 Goog l e CTS自动测试的意义和实现胡 欣(捷开通讯(深圳)有限公司,广东深圳 518057) [摘要]
阐述了 Google CTS认证所存在的意义和实现的具体方法,并对测试成本进行了较为细致的评估。CTS自动测试对整个 Android系统的生态圈良好的发展有着非比寻常的重要作用,而且简单易行,费用低廉。[关键词]
GACTS;生态系统;意义;方法 1.引言随着 Google Android移动平台的普及和应用,Google CTS慢慢为人们所关注,patibility Test Suite的缩写,因为,设备只有通过了 Google的 CTS认证,才能被允许使用 Google Play中数量庞大、多姿多彩的应用程序。 2.Google CTS认证的意义 Google CTS认证对整个 Android生态圈的发展都是非常有益的。生态圈包括了设备制造厂商、应用开发者和消费者。这三者之间是互相依存的关系,建立这样一个健康的生态圈,让生态圈的各个利益相关者,共同建立一个价值平台,通过这个平台,调动和平衡参与者的积极性和既得利益,可以保证这个平台长期健康稳定的发展。首先,对消费者而言,他们需要更多的可供选择的设备和大量有趣、有用的应用程序;对开发者而言,激励他们开发各类应用的动力,就是他们的应用可以在容量庞大的市场中发挥作用,也就是他们看中的是用户手中的大量设备;对设备制造商而言,可以用大量的应用来增加他们产品的价值。这样一个完整的生态链就建立起来了。 2.1 开发者 Google的 CTS为开发者提供了一致的应用开发环境, 如果没有一个强大的兼容标准,各种各样的设备会层出不穷,那么开发者就需要提供各种版本的软件来适用于不同的设备,维护各种版本,将会极大地增加开发者的开发和维护成本。而如果有了一个定义细致的兼容性标准,那么,开发者就可以预见他所开发的程序可以在任何兼容的设备上,正常运行,他需要做的,就是在一个兼容的设备上专心开发出消费者喜欢和需要的应用。 2.2 消费者 Google的 CTS为消费者提供了一贯的应用体验。如果一个应用可以正常运行在一个兼容的 An droid设备上,那么,即使更换了不同的设备,只要 Android平台版本相同,这个应用就会正常运行。另外,An droid设备在软硬件上都存在或多或少的差异,而 Google Play提供了发布系统来实现适当的过滤,那么,用户就只会看见那些自己平台上能够运行的应用。 2.3 设备制造商 Google的 CTS让设备制造商在确认兼容的同时,也可以实现产品的差异化。CTS可以让设备制造商易于发明不同设备,在兼容的前提下,运行第三方的应用。 Google的 CTS让保持兼容性的费用最小化。现在,对于设备制造商来说,确认设备兼容非常容易而且费用低廉。 CTS是免费、开源的,可以随意下载。在设备的开发过程中, CTS可以随时用于不间断的白测,以保证兼容性。 3.Google CTS认证的组成部分 Google CTS的完整测试认证,包括如下几个部分: 3.
CTS 这是一个完全自动化的测试过程,使用者需要做的,就是准备好设备和相关的 PC,在 PC上运行主程序,与设备进行交互,进行多达近 2万个测试用例的测试,来确认设备的各个部分满足 Google的要求,这个测试需要很长的时间,一般来说需要 7个小时左右。 3. 2
CTSVerifier 这个是一个主观性的测试,用于那些无法完全自动化的测试,如蓝牙的联接和通讯、USB端口是否可以正常工作等等。 3. 3
XTS 主要是针对系统的 DRM 来进行测试,满足对版权保护的需求。 3. 4
CAT 主要是针对声音进行测试,包括录音和回放。保证设备可以达到 Google要求的声音效果。 4.Google CTS认证的实现方法和步骤 4.1
Google CTS认证的实现方法 Google的 CTS认证需要 PC端软件与被测设备中安装特权软件才可以进行测试,基本原理是,PC端运行的程序, 将一个一个的测试用例包下载到设备中,由设备运行,并返回测试结果。测试管理和控制是由 PC端的软件进行控制,并生成最后的测试结果,测试用例的运行要在被测设备端运行,并将作者简介:胡欣,男,山西洪洞人,本科,中级。研究方向:Google的 Android操作系统开发、使用和认证。一72 — 测试结果发送回 PC端。至于特权软件,是为了实现解锁和某些特殊访问权限的需要而下载到被测设备中,在测试前,需要选择确认。 4.2 测试步骤 4.2.1
PC端的准备工作准备一台 Linux操作系统的 PC,需要安装的软件包括: Android SDK Java SDK python 4.2.2 设备端的准备工作 4.2.2. 1 复制文件复制所有相关的 Media文件到设备中,这个媒体文件包由 Google提供,用以保证覆盖了需要的所有格式的媒体。 4.2.2.2 下载应用下载必要的应用到设备中: (1)adb install~r CtsDeviceAdmin.apk (2)adb install~r essibilityService.apk 4.2.2.3 设置设置需要的项目: (1)Settings-&Display一&Sleep一&Never (2)Security一&De ̄ce administrators,勾选如下两项: android. deviceadm in. cts. CtsDeviceAdm inReceiver1 an droid. deviceadm in. cts. CtsDeviceAdm inReceiver2 (3)Accessibility一&Delegmmg Accessibility Service一&On (4)Developer Options一&On,勾选如下三项: Stay awake USB debugging Allow mock locations 4.2.2.4 启动测试在测试包中的 tools目录下,运行./cts.tradefed 在提示符“cts.tf&”后,输入 run cts—plan CTS即可启动 CTS 4.2.3 定时测试由于测试时间非常长,而且测试过程中会产生比较多的噪音,也需要一定的光线条件(主要摄像头需要),那么定时测试就非常重要。在 Linux系统中,本身存在定时命令如:at等等。进入 tools目录,输入:“at 3:0O”。在提示符“at&”后输入:“./cts.tradefed run cts—plan CTS”,按 Ctrl+D退出,即可在 3点钟,启动 CTS测试。 4.2.4 在同一台 PC上进行多台设备的测试测试任务可能会比较繁重,如果需要在一台 PC上测试多台设备是否可以呢?当然是可以的,只要在测试启动命令中加入~sem l相关的命令,就会对特定串号的设备进行测试:如”./cts1播放器加载中,请稍候...
该用户其他文档
下载所得到的文件列表GoogleCTS自动测试的意义和实现.pdf
文档介绍:
l学术探讨经验交流_二丰=二{ 二三二二=二二二= 』2tll3牟第6翱 Goog l e CTS自动测试的意义和实现胡 欣(捷开通讯(深圳)有限公司,广东深圳 518057) [摘要]
阐述了 Google CTS认证所存在的意义和实现的具体方法,并对测试成本进行了较为细致的评估。CTS自动测试对整个 Android系统的生态圈良好的发展有着非比寻常的重要作用,而且简单易行,费用低廉。[关键词]
GACTS;生态系统;意义;方法 1.引言随着 Google Android移动平台的普及和应用,Google CTS慢慢为人们所关注,patibility Test Suite的缩写,因为,设备只有通过了 Google的 CTS认证,才能被允许使用 Google Play中数量庞大、多姿多彩的应用程序。 2.Google CTS认证的意义 Google CTS认证对整个 Android生态圈的发展都是非常有益的。生态圈包括了设备制造厂商、应用开发者和消费者。这三者之间是互相依存的关系,建立这样一个健康的生态圈,让生态圈的各个利益相关者,共同建立一个价值平台,通过这个平台,调动和平衡参与者的积极性和既得利益,可以保证这个平台长期健康稳定的发展。首先,对消费者而言,他们需要更多的可供选择的设备和大量有趣、有用的应用程序;对开发者而言,激励他们开发各类应用的动力,就是他们的应用...
内容来自淘豆网转载请标明出处.4469人阅读
工作记录(49)
郁闷了好几天,做CTS测试快两周了,而进展却只有那么一点点,人们常说成功属于坚持不懈的人,一次次的尝试,一次次地与预测的不一样,然而今天通过一个群里的热心人的帮助,一下子解决了好几个难题,happy ing!
先亮一下成果:
其实总结了下,就是因为对cts测试中提供的session没有理解透,在之前的测试中经常会遇到以下问题,特别是一个plan测到一半的时候,相当郁闷
此时便会习惯性的CTRL+C结束,其实这是很不好的,很有可能将整个测试都搞砸了,一个很好的办法就是把机器重启了,如果还有问题就恢复出厂,重新配置
看到了吧,经过恢复出厂,重新设置测试条件,然后选择session,数值越小的话离当前测试的时间越近,这里我选择了1,session ID 为3,这样就能从上次断点出重新开始测试了如果过程中再遇到问题,重启机器就行了,测试完后就可以看哪些fail了,修改之后重新测试用例通过的话,就可以把result里面的结果改为pass了
下面是将闪光机测试修改pass后的截图
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:189833次
积分:2443
积分:2443
排名:第10971名
原创:38篇
转载:87篇
评论:46条
(1)(5)(4)(12)(16)(3)(6)(5)(2)(14)(2)(6)(24)(13)(1)(11)
http://blog.csdn.net/flowingflying/article/details/6671548 http://blog.csdn.net/feng88724/article/details/6259071 /blog/guest_book http://blog.csdn.net/jiahui524/article/details/6971662 http://blog.csdn.net/ichliebephone/article/details/5916320&&& 最近接触到CTS,据传不懂CTS就不算一个合格的android开发人员,我之前一直没见周边谁用过,作为一个产品开发的android人员,我还是太年轻~
&&& Compatibility Test Suite (CTS)& 兼容性测试组,是由google提供的一套测试框架,含有很多测试用例,
框架用于管理测试用例在真机设备或者模拟器上的执行,那些用例全是用java写的apk,通过运行这些apk得到的结果来测试系统平台的兼容性与稳定性.
&&& Compatibility Definition Document (CDD)& 一个定义标准,系统需要符合软件以及硬件相关参数.
你可以把测试结果发送给。当你提交了一个CTS报告时,你还可以要求访问Android&Market。
&&& 有android源码的可以直接在源码下 make cts ,最后会生成 /out/host/linux-x86/cts/android-cts
上面下载google提供的各个版本的 CTS组件,解压出来android-cts目录需要版本对应!
目录结构如下:
其中docs为空,
repository目录下有plans . testcases
tools 目录下就是启动 cts console 的工具包,由 cts-tradefed 脚本启动!其中有个README
网上的配置五花八门,直接看这个简单明了:
Configuring cts-tradefed
------------------------
1. Ensure 'adb' is in your current PATH. adb can be found in the
Android SDK available from
PATH=$PATH:/home/myuser/android-sdk-linux_x86/platform-tools
2. Follow the 'Setting up your device' steps documented in the
CTS User Manual. The CTS User Manual can be downloaded at
/compatibility/downloads.html
3. Connect the device to the host machine.
4. Ensure device is visible via 'adb devices'
Using cts-tradefed
-------------------
To run a test plan on a single device:
1. Make sure you have at least one device connected
2. Launch the cts-tradefed console by running the 'cts-tradefed' script at
android-cts/tools/cts-tradefed
'run cts --plan CTS' to run the default CTS plan
Some other useful commands are
To run a test package:
'run cts --package &packagename&'
To run a test class:
'run cts --class &full test class name&'
To shard a plan test run on multiple devices
'run cts --plan CTS --shards &number of shards&
note: all connected devices must be running the same build
For more options:
'run cts --help'
CTS Tradefed Development
------------------------
for instructions on obtaining the Android
platform source code and setting up a build environment.
The source for the CTS extensions for tradefed can be found at
&android source root&/cts/tools/tradefed-host
The source for the tradefed framework can be found on the 'tradefed' branch.
Perform these steps to build and run cts-tradefed from the development
environment:
cd &path to android source root&
cts-tradefed
google的README写的很明白了,需要终端能够使用&
adb& 这个在google提供的SDK中是有的,还给出来了下载链接,然后设置到环境变量PATH中!
可以看下cts-tradefed 这个脚本:
checkPath adb
checkPath java
# check java version
JAVA_VERSION=$(java -version 2&&1 | head -n 1 | grep '[ &]1\.6[\. &$$]')
if [ &${JAVA_VERSION}& == && ]; then
echo &Wrong java version. 1.6 is required.&
可以看到 是需要
jdk 1.6 以上的支持的!
android源码下的 cts 可能不是最新的,所以最好是去上面提到的google官网去下载对应的 cts 组件!
首先打开TV的adb调试开关,ubuntu通过adb connect TV_IP 连接,android-cts下执行cts-tradefed脚本进入cts控制台:
可以看到在cts-tf下使用 l d 命令查看到了 设备的相关信息.
使用help查看:
可以看到支持的命令集!
其中版本为4.2_r4,定义在/cts/tools/tradefed-host/src/com/android/cts/tradefed/build/CtsBuildProvider.java 中
使用 l p 查看可测试的计划:
cts-tf & l p
AppSecurity
这些都是存在
android-cts/repository/plans 下
一个plan中包含多个package ,每一次执行 run cts 都会分配一个 Session 号,从 0开始..
l d 显示连接的设备, l packages 显示可测试的包& , l r 显示记录结果
run cts -p package_name 单独测试package_name包
run cts --continue-session sessionID --disable-reboot&
根据sessionID 继续进行测试,不重启 ,因为重启 adb就断掉了!
run cts -c com.class_name -m methmod_name 单独测试某个类的方法 -c 后面跟类名全路径 ?m 后面跟方法名
其它命令可以看注释,不多做解释!
如果需要测试media相关的包,可在google官网下载
放到sdcard的test目录.
另外需要做的准备有:
安装cts测试需要的apk到目标板:CtsDelegatingAccessibilityService.apk,CtsDeviceAdmin.apk (这两个APK可以在cts源码目录的testcase中找到)
系统setting的配置
(如果项目删除了默认的setting或者深度修改了,可以用google的原生setting替代原有的setting来进行设置) 进入settings打开Wi-Fi并连接AP (AP需要连外网) 进入settings-&Security-&Screenlock设为None 进入settings-&Security-&Deviceadministrators-&Enable两个选项 进入Language&input-&language设为English(UnitedStates) 进入settings-&Display-&Sleep设为30minutes或None 进入settings-&Accessibility-&EnableDelegating Accessibility Service 进入settings-&Developeroptions-&Enable USB debugging、Stay awake、Allowmock locations 手动设置时间,并将时区调为北京,设置国家为china
这样就可以运行 run cts * 进行测试啦!
&测试完之后的结果保存在 /android-cts/repository/results/_11.53.42/testResult.xml 中
可以看到结果就四种:[pass/fail/notExecuted/timeout]
如果我们的硬件上并不支持某个功能模块的时候,我们可以在testResult.xml中修改 result=&fail& 为 result=&notExecuted&
如果是fail的肯定还有这样的附加信息:
&Test name=&testPlay00& result=&fail& starttime=&星期五 十月 31 12:01:24 CST 2014& endtime=&星期五 十月 31 12:01:26 CST 2014&&
&FailedScene message=&junit.framework.AssertionFailedError: playback /mnt/sdcard/test/bbb_short/176x144/3gp_h263_libfaac/bbb_short.ffmpeg.176x144.3gp.h263_300kbps_12fps.libfaac_mono_24kbps_11025Hz.3gp
at android.mediastress.cts.MediaPlayerStressTest.doTestVideoPlayback(MediaPlayerStressTest.java:161)
&StackTrace&junit.framework.AssertionFailedError: playback /mnt/sdcard/test/bbb_short/176x144/3gp_h263_libfaac/bbb_short.ffmpeg.176x144.3gp.h263_300kbps_12fps.libfaac_mono_24kbps_11025Hz.3gp
at android.mediastress.cts.MediaPlayerStressTest.doTestVideoPlayback(MediaPlayerStressTest.java:161)
at android.mediastress.cts.MediaPlayerStressTest.doTestVideoPlaybackShort(MediaPlayerStressTest.java:165)
at android.mediastress.cts.H263QcifShortPlayerTest.testPlay00(H263QcifShortPlayerTest.java:49)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)
&/StackTrace&
&/FailedScene&
可以看到还有堆栈信息,可用于查找定问fail原因!
添加testcase:
&& 我们可以在源码/cts/tests/tests/下面看到所有的testcase
网上的方法,这里借用记录如下:
配置Testcase 结构如下:
├── AndroidManifest.xml
├── Android.mk
└── src
& &└── android
& && &&&└── example
& && && && &├── cts
1、& & 在cts/tests/tests/目录下创建一个自己的用例集(文件夹)名称XXX;
2、& & 在该文件夹中构建如下结构:
├──AndroidManifest.xml(可以拷贝example下该文件)
├── Android.mk(可以拷贝example下该文件)
└── src
& &└── android
& && &&&└──XXX
& && && && &└── cts
3、& & 编写测试代码
具体操作:
在src/android/XXX/cts目录下添加自己的用例;(XXX为自己的测试用例集的名称,例如:test)
细节说明:
1、google官方cts测试用例中,对一个类进行测试时,并没有对该类的所有方法进行测试,而是测试了该类中使用最频繁的一些方法;所以我们自己编程测试用例时,也可以按照这样的原则进行操作;
2、对于“窗口控件类”中使用的的res资源文件的目录在source_android4\cts\tests\res
3、最好是在eclipse中编写,需要res文件的,可以先拷贝到当前工程下,这样可以通过eclipse检查编程中的语法错误;
4、包名的格式:package android.XXX.
4、& & 修改XXX/目录下的Android.mk文件
LOCAL_PACKAGE_NAME:= CtsXXXTestCases(这个变量是定义自己的测试用例集的名称;编译后会生成同名的APK文件)
LOCAL_INSTRUMENTATION_FOR:= CtsTestStubs(这个变量定位的是一些涉及到虚拟机的测试用例,使用junit框架;TestStubs这个类在目录cts\tools\vm-tests-tf\src\dot\junit\opcodes下)
5、修改XXX/目录下的AndroidManifest.xml文件
&manifestxmlns:android=&/apk/res/android&
package=&com.android.cts.XXX&&
&uses-permissionandroid:name=&android.permission.DISABLE_KEYGUARD& /&
&application&
&uses-libraryandroid:name=&android.test.runner& /&
&/application&
&instrumentationandroid:name=&android.test.InstrumentationCtsTestRunner&
android:targetPackage=&com.android.cts.stub&
android:label=&CTStests of android.XXX&/&
&/manifest&
6、修改source_android4.2/cts目录下的
CtsTestCaseList.mk ;(
在该文件中给变量cts_test_packages追加自己测试用例集名称CtsXXXTestCases
说明:该文件在编译的时候会被build/core/tasks/cts.mk 调用,生成最终的CTS包。
对CtsTestCaseList.mk文件说明:
CTS_COVERAGE_TEST_CASE_LIST(核心变量)
├── cts_support_packages(该变量包含的是测试依赖的一些用例,其对于代码目录为cts/hostsidetests)
& && && &&&├──CtsAccelerationTestStubs \
├──CtsDelegatingAccessibilityService \
├──CtsDeviceAdmin \
├──CtsMonkeyApp \
├──CtsMonkeyApp2 \
├──CtsSomeAccessibilityServices \
├──CtsTestStubs \
├──SignatureTest \
├──TestDeviceSetup \
├──$(cts_security_apps_list)
├── cts_test_packages(该变量对应的是cts/tests/tests/目录下的测试用例)
编译自己的cts包
执行make&&cts&&-j4
在真机上进行测试
由于完整进行cts测试要很长时间,所以我们可以自己创建一个测试计划,步骤如下:
1、将cts包解压,在android-cts\repository\plans下创建一个名为XXX的xml文件;
2、这个xml文件格式为:
&&&?xmlversion=&1.0& encoding=&UTF-8&?&
&TestPlan version=&1.0&&
& && & &Entry uri=&android.XXX&/&
&/TestPlan&
3、进行cts测试时执行run&&cts&&-- plan XXXCTS测试环境搭建介绍_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
CTS测试环境搭建介绍
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 运行命令 的文章

 

随机推荐