Summary of 2021 test engineer interview questions (with answers)

Come on together

Software Lifecycle (Basics)

Planning stage->Requirements analysis->Design stage->Coding->Testing->Operation and maintenance

What is the test process (still basic)

1) Test requirements analysis stage: reading requirements, understanding requirements, mainly learning business, analyzing requirements, and participating in requirements review meetings.
2) Test planning stage: The main task is to write a test plan, refer to the software requirements specification, the overall project plan, including the test scope (from the requirements document), schedule, allocation of human and material resources, and the formulation of the overall test strategy. Risk assessment and mitigation measures are formulated.
3), test design stage: mainly to write test cases, will refer to the requirements document (prototype diagram), outline design, detailed design and other documents, and will be reviewed after the use case is written.
4), test execution stage: build the environment, execute the smoke test (pre-test) - then enter the formal test, bug management until the end of the test.
5) Test evaluation stage: issue a test report to confirm whether it can go online.

Test process in the project (project experience)

Requirement review (conducted by developers, product managers, testers, project managers) --- Requirement determination (requirements document and prototype version determination);

Develop design documents (developers can output design documents before starting to write code: development plan, schema design, database design, interface document);

Test plan, strategy determination, write test case - test plan, use case review;

Execute the test case after receiving the test version (supplementary maintenance case);

Submit a bug---developer to modify;

Regression testing (may find new problems again, and then start running according to the process)

Reports are written after acceptance testing.

Test case design method (written without written use case)

White box testing: logic coverage, loop coverage, basic path coverage

Black-box testing: boundary value analysis, equivalence class division, wrong guessing, cause-and-effect diagram, state diagram, test outline, random testing , scenario

Software testing is divided into several stages, testing strategies and requirements for each stage (again, the basis)

The testing process will go through four main stages: unit testing, integration testing, system testing, and acceptance testing.

Unit testing : is the smallest unit for software design (module for functional testing)

Integration testing : It is to assemble the modules according to the design requirements for testing, and the main purpose is to find problems related to the interface.

System test : It is carried out after the integration test is passed. The purpose is to fully run the system and verify whether each subsystem can work normally and complete the design requirements.

Acceptance test : Take the "Requirements Specification" in the demand stage as the acceptance standard, and simulate the actual user's operating environment during the test

Bug description and cycle (right--basic)

1. The bug title should be concise and clear, with a clear focus

2. To write down the preconditions for the occurrence of the problem

3. The operation process should be written clearly according to the steps

4, to write the actual effect and expected effect

5. To indicate the probability of bugs appearing

6. Provide necessary screenshots and logs, and provide videos for more complicated operation steps

7. The bug level should be divided into categories, fatal bugs, serious bugs, general bugs, and constructive comments

8. The version number of the software where the bug occurred

9. Modules where bugs appear

Discover, Submit, Assign, R&D Confirmation, R&D Repair, Regression Verification, Pass Verification, Close

Criteria for the end of the test (emmmm)

1. All use cases are tested.

2. The coverage rate reaches the standard.

3. The defect rate reaches the standard.

4. Other indicators meet the quality standards

You found a bug in the test, but the developer thinks it is not a bug, how should you solve it (poor communication skills)

1. Submit the problem to the defect management library for record.

2. To obtain the basis and standard for judgment:

3. According to the requirements specification, product description, design documents, etc., confirm whether the actual results are inconsistent with the plan, and provide a direct basis for whether the defects are confirmed;

4. If there is no document basis, it can be confirmed whether it is a defect by explaining whether there is any inconsistency according to the general characteristics of similar software;

5. Discuss with relevant personnel such as designers, developers and customer representatives to confirm whether it is a defect;

Finally, throw it to the leader and wait for the result~

Quickly distinguish bug sources and common status codes (12345)

Brother, let’s look at the packets together , first capture the packets and look at the request packets, and look at the interface document to see if there are any problems with the request packets. If there is a problem, the data sent by the front end is wrong; if the request packets are no problem, then look at the returned packets. , the returned data is wrong, that is the problem of back-end development, the status code is as follows:

status code  reason phrase
1XX Informational (informational status code) The received request is being processed  
2XX Success (success status code) The request is processed normally  
3XX Redirection (redirection status code) Additional action is required to complete the request
4XX Client Error (client error status code) The server was unable to process the request
5XX Server Error (Server Error Status Code) Error processing request by server  

 The difference between http and https (encrypted transmission)

The difference between http protocol and https protocol: different transmission information security, different connection methods, different ports, different certificate application methods, different transmission information security

1. http protocol: it is a hypertext transfer protocol, and information is transmitted in clear text. If the attacker intercepts the transmission message between the web browser and the web server, he can directly read the information in it;

2. HTTPS protocol: It is a secure ssl encrypted transmission protocol, which encrypts the communication between the browser and the server to ensure the security of data transmission.

2. Different connection methods

1. http protocol: http connection is very simple and stateless;

2. HTTPS protocol: It is a network protocol constructed by SSL+HTTP protocol that can perform encrypted transmission and identity authentication.

3. Different ports
http protocol: the port used is 80; https protocol: the port used is 443.

Fourth, the certificate application methods are different

http protocol: apply for free https protocol: you need to go to ca to apply for a certificate, generally there are very few free certificates, and you need to pay a fee

 The difference between get and post (more detailed in the following article, it is actually better to ask put)

a. The parameters sent in the URL of the GET request are limited in length, while the POST does not

b. GET is less secure than POST, because the parameters are directly exposed on the URL, so they cannot be used to transmit sensitive information.

c. GET parameters are passed through the URL, and POST is placed in the Request body.

d. GET request parameters will be completely preserved in the browser history, while POST parameters will not be preserved.

e. GET requests can only be url encoded, while POST supports multiple encoding methods.

f. GET requests will be actively cached by the browser, while POST will not, unless manually set.

g. The URL address generated by GET can be Bookmarked, but POST cannot.

h. GET is harmless when the browser rolls back, while POST will submit the request again. 

Difference Between Alpha Testing and Beta (Basic++)

Alpha testing is the testing of the application system when system development is nearing completion; there will still be minor design changes after testing. Such testing is typically done by end users or other personnel, not by programs or testers. Tested in a development environment by one or more users.

Beta testing is done when development and testing are fundamentally complete, and eventual bugs and issues need to be found before final release. Such testing is typically done by end users or other personnel, not by programmers or testers. Rather, it is performed by one or more users in the user's actual environment. 

 Commonly used test tools (you can learn~)

(fiddle, jmeter, postman, roadrunner, selenium, appium, jenkins, git, svn, zen, xss platform, mysql, monkey, etc.)

fiddle: a commonly used packet capture tool, the way of use is the same as the jmeter proxy server ( details below )

jmeter: a relatively powerful pressure measurement tool, I wrote a column to explain, if you are interested, you can take a look at https://blog.csdn.net/weixin_46658581/category_11228583.html?spm=1001.2014.3001.5482

postman: The simplest interface testing tool, I personally think it is very general... I recommend jmeter-.-

monkey: a few points series  https://blog.csdn.net/weixin_46658581/category_11265713.html?spm=1001.2014.3001.5482

The tool is not clear in one or two sentences, I will gradually improve the editing column for analysis later~~~

Frequently Asked Questions about Interface Testing (emmm Basics)

1. Passing verification, to put it bluntly, is to pass the correct parameters, whether to return normal results

2. Parameter combination, because parameters are required and not required to be passed, the type and length of parameters, and some possible business restrictions when passing, so when designing use cases, it is necessary to arrange and combine these situations to ensure that all situations can be covered. arrive

3. The security of the interface is divided into several situations:

1) To bypass the verification, for example, when submitting an order, when the commodity price parameter is passed, and the commodity price is modified, it depends on whether the backend has verification. Or when I pay, I grab a bag and change the order amount. If I can pay with the amount I changed, then there is a problem with this excuse.

2) Bypassing authentication, that is, a function can only be operated by users with special permissions, so if I pass an ordinary user, can it also be operated?

3) Whether the parameters are encrypted or not, this is related to the security of some accounts. For example, when we log in to some websites, it will encrypt our login information. If we do not encrypt our information, it will be exposed, which is extremely harmful.

4) Password security rules, check the complexity when setting passwords.

Dependency interface test: upstream and downstream interface dependencies (+++1)

Use a global variable to process dependent data, such as returning a token after logging in, other interfaces need this token, then use a global variable to pass the token parameter

The most correct answer for how to test interfaces that depend on third-party data is mock. Of course, we can do it simply.

1. Get the return value of the previous interface

2. Set the return value to an environment variable or a global variable

3. Set the parameter form of the next interface

What about interfaces that depend on login?

If the login interface depends on the token, you can log in first, and the token is stored in a yaml, json or ini configuration file.
All subsequent requests can get this data and use it globally. If it is a parameter of cookies, it can be automatically associated with session.

Example of an interface test case: login

Whether parameters are required, whether there is an association between parameters, and business rules for parameter value ranges

The phoneNumber and password parameters are correct, the login is successful

The phoneNumber parameter is correct, the password type is not String, and the login fails

The phoneNumber parameter is correct, the password parameter is missing, and the login fails

The password parameter is correct, the phoneNumber exceeds 11 digits, and the login fails

The password parameter is correct, the phoneNumber is not a String, and the login fails

The password parameter is correct, the phoneNumber parameter is missing, and the login fails

If the user is not registered, the login failure  password error is returned, and the login failure is returned.
The parameter is deliberately passed in an empty string or null, and you can see if it has been processed.

Common use case design in interviews: how to test a paper cup =.= (sometimes a flower pot, a table)

Functionality: water in a water cup is leak-proof; can the water be drunk

Safety: No poison or bacteria in the cup

Reliability: how much damage the cup is dropped from different heights

Portability: Whether the cup can be used normally in different places, temperatures, etc.

Compatibility: Whether the cup can hold juice, plain water, alcohol, gasoline, etc.

Ease of use: whether the cup is hot, whether it has anti-slip measures, and whether it is convenient to drink

User documentation: Does the user manual have a detailed description of the cup's usage, restrictions, conditions of use, etc.

Fatigue test: put the cup with water (case 1) for 24 hours to check the leakage time and situation; put gasoline (case 2) for 24 hours to check the leakage time and situation, etc.

Pressure test: use a needle and keep adding weight on the needle to see how much pressure it will penetrate

What aspects of APP testing (yes, yes, or basics) 

Permission testing, installation, running, uninstallation testing, UI testing, functional testing, performance testing, interruption testing, compatibility testing, security testing, regression testing, upgrade update testing, user experience testing

Fiddler is used to capture packets (yes, I was fortunate to be asked step by step)

web: After opening the fiddler tool, go to the browser to open the web page, and fiddler will automatically capture packets and capture the request response data. It will be automatically set as a local proxy, and it can also be set to grab packets of the https protocol. [Pro ~ browser F12 to understand]

Mobile phone: In the network settings on the mobile phone, set the proxy server. It is to use fiddler as a proxy server (fiddler itself needs to be set to support remote connections), and the mobile phone is connected to the fiddler tool, so the mobile phone proxy server setting page needs to enter the ip address of the computer that opens the fiddler tool and the fiddler port number 8888, so that the mobile phone can connect fiddler, access the Internet through fiddler.

what is performance testing =.= (a thousand words emmm)

When the system is under certain pressure, check various indicators such as cpu, memory, disk, network bandwidth, TPS, response time, number of concurrent users, etc., and test whether the performance of the system is performed by simulating the combination of business pressure and usage scenarios of production operation. To meet production performance requirements is to verify the capability of the system under specified operating conditions.

What is load testing (powerless to refute)

Load testing mainly examines the performance of a software system under a given load. It is to observe the performance of the software system under certain conditions from the user's point of view. The desired result is that the user's performance index requirements are met. Performance indicators are generally reflected in response time, concurrency, etc.

Test environment construction (I am afraid of trouble and simple bb)

1. Upload tomcat, MySQL installation package, JDK (Java Development Environment Toolkit) to linux through winscp

2. Use the tar -zxvf decompression package command to unpack and install jdk, tomcat, and mysql, and then configure the jdk environment variables.

3. Put the war package (web program) under the webapps directory specified by tomcate, and then start the server. (Enter the path of startup.sh and press Enter to run)

Common Linux Commands

Common operation commands

shutdown -h now 立刻关机 
shutdown -h 5   5分钟后关
poweroff        立刻关机
shutdown -r now 立刻重启
shutdown -r 5   5分钟后重启
reboot 立刻重启
cd / 切换到根目录cd 
/usr 切换到根目录下的usr目录
cd …/ 切换到上一级目录 或  cd … cd ~ 切换到home目录
cd - 切换到上次访问的目录
ls 查看当前目录下的所有目录和文件
ls -a查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -l 列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
ls / 查看指定目录下的所有目录和文件
查找命令
grep    命令是一种强大的文本搜索工具
find    命令在目录结构中搜索文件,并对搜索结果执行指定的作。
locate  让使用者可以很快速的搜寻某个路径。
whereis 命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。
which   命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
命令格式
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
参数说明:
-u user:用来设定某个用户的crontab服务
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容。如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:删除定时任务配置,从/var/spool/cron目录中删除某个用的crontab
文件,如果不指定用户,则默认删除当前用户的crontab文件。
命令:pwd 查看当前目录路径
命令:ps -ef 查看所有正在运行的进程
命令:kill pid 或者 kill -9 pid(强制杀死进程) pid:进程号
ifconfig:查看网卡信息
命令:ifconfig 或 ifconfig | more
ping:查看与某台机器的连接情况
命令:ping ip
netstat -an:查看当前系统端口
命令:netstat -an
搜索指定端口
命令:netstat -an | grep 8080

Directory operations [add, delete, modify, check]

【增】 mkdir
mkdir aaa      在当前目录下创建一个名为aaa的目录
mkdir /usr/aaa 在指定目录下创建一个名为aaa的目录
【删】rm
删除文件:
rm 文件    删除当前目录下的文件
rm -f 文件 删除当前目录的的文件(不询问)
删除目录:
rm -r aaa  递归删除当前目录下的aaa目录
rm -rf aaa 递归删除当前目录下的aaa目录(不询问)
全部删除:
rm -rf *   将当前目录下的所有目录和文件全部删除
rm -rf /* 【慎用!慎用!慎用!】将根目录下的所有文件全部删除
注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包
【改】mv 和 cp
重命名目录
命令:mv 当前目录 新目录
例如:mv aaa bbb 将目录aaa改为bbb
剪切目录
命令:mv 目录名称 目录的新位置(将/usr/tmp目录下的aaa目录剪切到/usr目录下面 mv/usr/tmp/aaa/usr)
拷贝目录
命令:cp -r 目录名称 目录拷贝的目标位置 -r代表递归
(将/usr/tmp目录下的aaa目录复制到 /usr目录下面 cp /usr/tmp/aaa /usr)
【查】find
命令:find 目录 参数 文件名称
示例:find /usr/tmp -name ‘a*’ 查找/usr/tmp目录下的所有以a开头的目录或文件

File operations [add, delete, modify, check]

【增】touch
touch 文件名(示例:在当前目录创建一个名为aa.txt的文件 touch aa.txt)
【删】 rm
rm -rf 文件名
【改】 vi或vim
vi编辑器的3种模式
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
1、command mode 命令行模式下的常用命令:
【1】控制光标移动: ↑,↓,j
【2】删除当前行: dd
【3】查找:/字符
【4】进入编辑模式: i o a
【5】进入底行模式: :

2、Insert mode编辑模式
编辑模式下常用命令:
【1】ESC 退出编辑模式到命令行模式;

3、last line mode底行模式下常用命令:
【1】退出编辑: :q
【2】强制退出: :q!
【3】保存并退出: :wq

【查】文件的查看命令:cat/more/less/tail
cat:看最后一屏 cat sudo.conf(使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容)

more:百分比显示more sudo.conf(使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看)

less:翻页查看less sudo.conf(使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看)

tail:指定行数或者动态查看tail -10 sudo.conf(使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束)


打包和压缩
Windows的压缩文件的扩展名 .zip/.rar
linux中的打包文件:aa.tar
linux中的压缩文件:bb.gz
linux中打包并压缩的文件:.tar.gz
Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
命令:tar -zcvf 打包压缩后的文件名 要打包的文件,其中:z:调用gzip压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名
示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
tar -zcvf ab.tar aa.txt bb.txt
或:tar -zcvf ab.tar *
解压
命令:tar [-zxvf] 压缩文件
其中:x:代表解压
示例:将/usr/tmp 下的ab.tar解压到当前目录下
tar -zxvf ab.tar
示例:将/usr/tmp 下的ab.tar解压到根目录/usr下
tar -zxvf ab.tar -C /usr------C代表指定解压的位置

Commonly used mysql commands

【增】insert
insert into 表名 values(值1,值2,…);
insert into 表名(字段1,字段2…) values(值1,值2,…);(较常用)
insert into 表名(字段1,字段2…) values(值1,值2,…),(值1,值2,…),(值1,值2,…);

【删】delete
delete from 表名 where 条件 

【改(更新)】update
update 表名 set字段1 = 值1, 字段2 = 值2 where 条件

重要*【查】select
select * from 表名               查询表中的所有数据 
select 字段 from 表名            指定数据查询 
select 字段 from 表名 where 条件  根据条件查询出来的数据 

where 条件后面跟的条件 
关系:>,<,>=,<=,!=
逻辑:or, and
区间:id between 4 and 6 ;闭区间,包含边界

【排序】
select 字段 from 表 order by 字段 排序关键词(desc | asc)
排序关键词 desc 降序 asc 升序(默认)
通过字段来排序 :select * from star orser by money desc, age asc;
多字段排序 :select 字段 from 表 order by 字段1 desc |asc,…字段n desc| asc;

【常用的统计函数】 sum,avg,count,max,min

Multi-table joint query


1.内连接
隐式内连接 select username,name from user,goods where user,gid=gods,gid;
显示内连接 select username,from user inner join goods on user.gid=goods.gid;
          select * from user left join goods on user.gid=goods.gid;
2.外链接 左/右连接
select * from user where gid in(select gid from goods);
select * from user right jOin goods on user.gid=goods.gid;

3.数据联合查询
select * from user left join goods on user.gid=goods.gid union select * from user right join goods on user.gid=goods.gid;

4.两个表同时更新
update user u, goods g set u.gid=12,g.price=1 where u.id=2 and u.gid=g.gid;

clause

illustrate

Is it necessary to use

select

the column or expression to return

Yes

form

table to retrieve data from

Only used when selecting data from a table

where

row-level filtering

no

group by

Grouping Description

Only used when computing aggregates by group

having

Group level filtering

no

order by

output sort order

no

limit

the number of rows to retrieve

no

 monkey

命令:adb shell monkey +命令参数
所有的参数都需要放在monkey和设置的次数之间;参数的顺序可以调整,若带了-p ,-p必须放在monkey之后,参数必须在-p和次数之间

2.monkey基础命令
adb shell monkey -p 包名 -v -s seed值 压测次数

参数-p:
此命令用于指定要测试的包,若不指定则在整个系统中执行

a)指定一个包执行10次:adb shell monkey -p 包名 10

如下出现事件执行次数和所耗时间,则算是执行成功;

b)指定多个包执行10次:adb shell monkey -p 包名 –p 包名 10

参数 -v:
用于指定反馈日志的详细程度级别(共3个级别)

1.Level 0: adb shell monkey -p 包名 -v 10

默认级别,仅提供启动、测试完成和最终结果等少量信息

2.Level 1: adb shell monkey -p 包名 -v -v 10

提供较为详细的日志,包括每个发送到Activity的事件信息

3.Level 2: adb shell monkey -p 包名 -v -v -v 10

提供最详细的日志,包括了测试中选中/未选中的Activity信息

参数 -s:
用于指定伪随机数生成器的seed值

命令:adb shell monkey -p 包名 –s seed值 执行次数

作用:如果seed值相同,则两次Monkey测试所产生的事件序列也相同的。

示例:

测试1:adb shell monkey -p com.qq –s 15888 100

测试2:adb shell monkey -p com.qq –s 15888 100

说明:

两次测试的效果是相同的,因为模拟的用户操作序列(每次操作按照一定的先后顺序所组成的一系列操作,即一个序列)是一样的。(也就是说,重复执行上次的随机操作)

操作序列虽然是随机生成的,但是只要我们指定了相同的Seed值,就可以保证两次测试产生的随机操作序列是完全相同的,所以这个操作序列伪随机的;

运行:
>>不间断操作500次              adb shell monkey -p 包名 -v 500  

>>每个操作间隔500ms,共执行100次             adb shell  monkey -p 包名  -v-v --throttle  500 100

>>每个操作间隔100ms,共执行1000次 ,其中点击事件占比50%,轨迹50%                 adb shell monkey  -p  包名  -v-v --pct-touch  50  --pct-trackball 50 --throttle 100 1000

>>日志重定向到桌面文件夹                               adb shell monkey  -p  包名  -v-v --pct-touch  50  --pct-trackball 50 --throttle 100 1000>C:\Users\xyp\Desktop\Android脚本\1.log

>>每个操作间隔500ms、崩溃、超时、许可错误继续执行                       adb shell  monkey -p  包名   --throttle  500 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v-v-v  1000000>C:\Users\xyp\Desktop\Android脚本\1.log

停止monkey测试           
重新打开一个cmd窗口>>进入adb shell>>ps | grep monkey查找monkey进程>>kill  进程号结束monkey

日志分析
1. 查找出差步骤:
a)找到monkey里哪个地方出错

查看Monkey执行的是哪一个Activity,在switch后面找,两个swtich之间如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。

b)查看Monkey里面出错前的一些事件动作,手动执行该动作

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

>>Sending XX 就是代表一个操作,如下图的两个操作 应该就是一个点击事件。

c)若以上步骤还不能找出,则可以使用之前一样的seed,再执行monkey命令一遍,便于复现

2.测试结果分析:
>>程序无响应,ANR问题:在日志中搜索“ANR”

>>崩溃问题:在日志中搜索“CRASH”

>>其他问题:在日志中搜索”Exception”

monkey说明
--throttle   时间间隔

--ignore-crashes    忽略崩溃

--ignore-timeouts  忽略超时

--ignore-security-exceptions   忽略许可错误

--ignore-native-crashes  忽略本地崩溃

--monitor-native-crashes   监控本地崩溃

--pct-touch  触摸、点击

--pct-motion 调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成)

--pct-trackball  调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)

--pct-nav 调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)

--pct-majornav 调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)

--pct-syskeys 调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)

--pct-appswitch 调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法

--pct-flip 调整“键盘翻转”事件的百分比。

--pct-anyevent 调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等

注意:各事件类型的百分比总数不能超过100%

Please read more articles~~~ 

Guess you like

Origin blog.csdn.net/weixin_46658581/article/details/119678292