前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大厂面试测试开发岗,需要准备的100道题型

大厂面试测试开发岗,需要准备的100道题型

作者头像
测试开发社区
发布2021-07-02 09:59:02
9350
发布2021-07-02 09:59:02
举报
文章被收录于专栏:测试开发社区

1-50题、《大厂测试开发面试50题,你能答出几道?》

51、Web View 怎么测试?

首先要在代码中开启webview debug 然后输入Chrome://inspect 然后切换driver 获取元素控件 如果想要在继续测试原生,则需要将driver切换回来

52、请问你的定位策略是什么? web:css app:id

53、请问如何实现用例失败或者异常时候需要截图? 使用webdriver中的截图类,WebDriver有提供用于截图的TakesScreenshot类 driver.getScreenshotAs

54、请问如何分布式执行webdriver用例? 方式一:利用jenkins分布式Master-slave来解决,selenium脚本不需要修改,环境部署好,可以直接跑 方式二:利用selenium grid分布式处理,这个有介绍过点击打开链接,剩下就是把selenium grid放到jenkins里面,让jenkins去管理,这个后续一篇介绍,这种方式,driver的url要改成hud的,脚本需要稍加修改

55、如何在脚本中执行 JavaScript 代码? 方式一:

代码语言:javascript
复制
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
String scriptContent = "function multiply(a,b) {return a*b;}";
//注册脚本
engine.eval(scriptContent);
Invocable invocable = (Invocable) engine;
//调用注册函数
System.out.println(invocable.invokeFunction("multiply", 2, 3));

方式二:

代码语言:javascript
复制
//使用管道流,将输出流转为输入流
PipedReader prd = new PipedReader();
PipedWriter pwt = new PipedWriter(prd);
//设置执行结果内容的输出流
engine.getContext().setWriter(pwt);
//js文件的路径
String strFile = Thread.currentThread().getClass().getResource("/").getPath() + "/abc.js";
Reader reader = new FileReader(new File(strFile));
engine.eval(reader);
BufferedReader br = new BufferedReader(prd);
//开始读执行结果数据
String str = null;
while ((str = br.readLine()) != null && str.length() > 0) {
     System.out.println(str);
}
br.close();
pwt.close();
prd.close();


56、Appium 的定位策略有哪些? android的定位方式: 1.通过元素的 id 定位 2.通过元素的 className 定位元素 3.通过元素的 accessibility id 定位元素 4.通过 androiduiaumator 定位元素 5.如果选取的定位信息的值在整个界面存在多个时,可以使用 driver.findElements 方法来 定位 6.findElementByAndroidUIAutomator ios的定位方式: 1.iOSNsPredicateString 2.iOSClassChain 3.AccessibilityId:主要使用元素的 label 或 name 或者 value 属性进行定位 4.className:主要使用元素的 type 属性进行定位

57、请简述Appium的原理

58、iOS 和 Android 的 UI 自动化的原理是什么?

59、当定位策略都失败的时候,你该怎么做?

80%是你元素定位的不对,那么多定位方法,一个不行换另外一个,直接不能定位,先定位父元素,再循环找子元素。一般来说XPATH都能定位到,无非是可阅读性不强。真的全部失效,请求开发帮你改个元素属性好了。

60、UI 测试做的是 iOS 还是 Android?讲讲 iOS 的 UI 怎么测?

61、获取 Appium 中的 content-desc 不为空的控件列表,代码不限。 driver.find_element_by_accessibility_id('搜索或输入网址')

62、并行运行 Appium 需要修改哪些参数 需要改端口,多个端口 然后在caps文件中获取多设备

63、你如何用Selenium测试

64、Selenium的工作原理?

65、常见的定位方式?

66、上传图片的几种方式?

67、如何处理动态元素?

找父级元素,通过父级元素查找子元素,xpath

68、你是怎么开发测试框架的?

69、PO模型是怎么做的?

70、失败截图的原理是什么?

71、你常用的命令是什么?

72、用什么查看log? tail -f

73、如何查找一个文件大小超过5M的文件 find user -size +5000k -type f

74、如何查看进程? ps -elf

75、Linux 中查找某个文件并删除它 find . -name '*.exe' -type f -exec rm -rf { } \

76、Linux 查询 CPU、内存的指令 cat /proc/cpuinfo查看linux系统的CPU型号、类型以及大小 通过greap命令根据Physical Processor ID筛选出多核CPU的信息 cat /proc/meminfo查看linux系统内存大小的详细信息,可以查看总内存,剩余内存、可使用内存等信息。 df -h查看linux系统各分区的使用情况 free -m 查看linux系统内存使用量和交换区使用量

77、使用 Shell 获取 Nginx log 中接口包含 topic 且状态码为 200 的接口平均响应时间(越严谨越好) cat nginx.log |grep ‘topic’ |grep ‘200’|awk -F ‘’ ‘{sum=sum+$1} END {print “sum=”,sum}’

78、每隔 2s 获取某个进程的 CPU 和 mem 数据并保存到 csv 数据文件

79、快排的实现 (代码实现)

80、算数组中查找出现次数过半的数(代码实现)

81、查找链表的倒数第三个数(代码实现)

82、什么是面向对象编程?

83、讲下Java多线程的使用

84、有三个线程T1,T2,T3,怎么确保它们按顺序执行?

85、Thread 类中的start() 和 run() 方法有什么区别? start() 启动时用的,只调用一次 run() 可以调用多次

86、请写一个线程安全的单例模型 //Initialization on Demand Holder public class Singleton { private static class SingletonHolder { public final static Singleton instance = new Singleton(); } public static Singleton getInstance() { return SingletonHolder.instance; } }

87、请写出冒泡排序

88、1~9999数列中数字3出现的次数,请用递推方法解题。

89、从一个数组中找出前4个最大的数,用最优解。

90、写一段程序,删除字符串a中包含的字符串b,举例 输入a = “asdw”,b = “sd” 返回 字符串 “aw”,并且测试这个程序。

91、写一个方法,把字符串转为数字,比如 str=“1234”,变成 int 1234。并且测试这个程序

92 、A、有两个有序链表,将他们组成一个有序链表。

93、给一个字符串,字符串里有 (){}[]“”这六个符号,设计一个算法,判断这些符号是否成对匹配,即要检验这些括号是否都是成对出现的。

94、有两个字符串类型的数字,实现一个方法将它们进行相加,并返回相加后的数值。(要考虑数据的长度问题)

95、Java 多线程的创建

96、算法:二叉树的深度计算

96、算法:一亿个无序数找出 Top 100(这个也没写好,空间复杂度高了,应该用堆排序)

97、说下左连接和右连接 左外连接:将左表为驱动表进行连接,结果数据包含左表全部数据,以及右表中和左表匹配的数据,左表中有,但右表中没有的数据显示null(取左边全部及右边部分数据) SELECT * FROM TABLE1 LEFT JOIN TABLE2 ON TABLE1.USERNAME=TABLE2.USERNAME

右外连接:将右表为驱动表进行连接,结果数据包含右表全部数据,以及左表中和右表匹配的数据,右表中有,但左表中没有的数据显示null(取右边全部及左边部分数据) SELECT * FROM TABLE1 RIGHT JOIN TABLE2 ON TABLE1.USERNAME=TABLE2.USERNAME

内连接:等值连接,返回两张表中都满足匹配条件的数据 (取两个表的交集) SELECT * FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.USERNAME = TABLE2.USERNAME SELECT * FROM TABLE1 JOIN TABLE2 ON TABLE1.USERNAME=TABLE2.USERNAME

98、给你一张表,根据要求写sql,这个题目比较多,自己百度吧。

99、使用sql生产10万条数据 create table myTestTable as select rownum as id, to_char(sysdate + rownum/24/3600, 'yyyy-mm-dd hh24:mi:ss') as inc_datetime, trunc(dbms_random.value(0, 100)) as random_id, dbms_random.string('x', 20) random_string from dual connect by level <= 1000000;

100、数据库熟吗?用过哪些数据库?索引会吗?事务了解吗?写一个SQL 查询语句:给一个字段,对其进行从大到小排序,取前十行。 我平时的工作中会协助提高数据库的查询效率,会给数据 id 等创建索引;事务开发那边用的比较多,然后我举了 ATM 机取款的例子。SQL 语句如下 select field from table order by field desc limit 10

转载自:http://navo.top/FFr6Nj

-------- THE END --------

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档