软件测试面试题分享-No.4

简介: 元素定位问题可以采用智能等待的方式尽可能的避免,另外,优化xpath定位的写法等。用例依赖可以解耦用例之间的关系,让每条用例都从一个共同的页面开始执行,比如首页,这就需要在测试框架中采用后置处理的方式使每条用例执行完成后都回到首页。
为什么要使用PO模式?

PO是Page Object 模式的简称,它是一种设计思想,意思是,把一个页面,当做一个对象,页面的元素和元素之间操作方法就是页面对象的属性和行为,PO模式一般使用三层架构,分别为:基础封装层

BasePage,PO页面对象层,TestCase测试用例层。

Page Object是一种程序设计模式,将面向过程转变为面向对象(页面对象),将测试对象(按钮、输入框、标题等)及单个的测试步骤封装在每个Page对象中,以page为单位进行管理。这样,在Selenium测试页面中可以通过调用页面类来获取页面元素,从而巧妙的避免了当页面元素id或者位置变化时,需要改测试页面代码的情况。当页面元素id变化时,只需要更改测试页面文件类中页面的属性即可。可以使代码复用,降低维护成本,提高程序可读性和编写效率。

POM解决的问题:

以页面为单位,集中管理元素对象和方法。当页面元素或流程变动时只需要修改相关页面方法即可,不需要修改相应脚本,后期维护方便 。

PO模式是一种设计思想,在实际编码的时候可以有若干种实现方式。实际上,也建议大家根据自己项目的情况来动态的编码。具体来说,常见的PO模式有:

1)三层:对象库层+case层+page层

2)四层:对象库层+case层+page层+公共类


接口测试用例的编写要点有哪些?

考点:

接口测试用例设计

参考答案:

1)必填字段:请求参数必填项、可选项

2)合法性:输入输出合法、非法参数

3)边界:请求参数边界值等

4)容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理

5)响应数据校验:断言、数据提取传递到下一级接口…

6)逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况

7)性能:对接口模拟并发测试,逐步加压,分析瓶颈点

8)安全性:构造恶意的字符请求,如:SQL注入、XSS、敏感信息、业务逻辑(如:跳过某些关键步骤;未经验证操纵敏感数据)


接口测试中的加密参数如何处理

考点:

是否熟悉加解密方式

是否具备处理加密参数的能力

是否实际应用过

参考答案:

首先了解参数的加解密方式,常见的有md5、aes、rsa等等,如果是aes的需要找开发要私钥,如果是rsa需要找开发要公钥和私钥,然后在接口测试工具中引用加解密的代码实现参数的加解密过程,实现参数加解密的处理;如果公司有自定义的加密算法则需要找开发要加解密的代码实现,然后在测试工具中

使用。


同步和异步区别?

同步和异步是一种通讯方式

同步:执行一个操作时,需要等待其处理完成,然后再进行下一个操作

异步:执行一个操作时,不需要等待返回,就可以进行下一个操作

举例:

下单接口中,需要调用库存接口做库存判断,所以必须等待库存接口返回数据才能进行下一步操作,这是同步;

文件的下载方式,我之前就经常遇到需求说让开发改成异步下载。避免下载比较慢会导致超时,并且影响用户体验。


简单介绍一下自动化项目整体框架的结构

自动化测试框架涵盖基础方法封装、自定义异常封装、工具类封装、元素管理封装、Page Object模式封装、日志封装、数据管理封装、失败重试封装、浏览器/手机适配封装、数据库操作封装、测试用例管理封装、测试报告等等。


简述Jmeter工具如何做接口之间的关联?

接口关联指的就是一个接口要使用另一个接口的返回值作为参数,这种我们在jmeter中叫做关联。

关联的实现方式有多种:

1、使用正则表达式提取器获取上一个请求的响应结果中的某个值,储存在某个变量中,然后下一个接口使用变量进行引用

2、使用json提取器获取上一个请求的响应结果中的某个值,储存在某个变量中,然后下一个接口使用变量进行引用

3、使用beanshell后置处理器,解析响应结果存储在变量中,然后下一个接口使用变量进行引用

跨线程组关联则需要将关联字段设置为全局属性


你们公司业务中,自动化和手工分别占比多少?分别用来做什么业务?

首先各公司自动化和手工的占比取决于对自动化测试的投入,这个问题的回答建议做好数据,比如我们的项目共有20个模块,功能测试用例总计1000,从其中分析出要实现的自动化用例300条,那么自动化的占比就出来了。

那么哪些测试用例会被用来做自动化:

稳定模块的用例、功能优先级高的用例、重要主流程的用例等。

手工测试一般用来做新功能测试业务,自动化一般用来做旧的功能用来回归业务。


如何保证UI自动化测试的稳定性?

自动化测试稳定性主要表现在两个方面:一个是元素定位的问题,一个是用例之间的依赖问题。

元素定位问题可以采用智能等待的方式尽可能的避免,另外,优化xpath定位的写法等。

用例依赖可以解耦用例之间的关系,让每条用例都从一个共同的页面开始执行,比如首页,这就需要在测试框架中采用后置处理的方式使每条用例执行完成后都回到首页。


关注公众号#小博测试成长之路,为你分享小编自己自学和整理的笔记喔。更多面试题/学习交流,在群里等着你呦,公众号后台回复进群/通过菜单自己扫描加群即可。


相关文章
|
3月前
|
运维 测试技术
拆分软件测试流程,一张图秒杀所有面试
本文主要介绍了软件测试流程的核心内容,包括需求分析、测试用例编写、测试执行、缺陷提交及回归测试等关键步骤。以迭代测试为例,详细说明了每个环节的具体操作和注意事项,并提供了一张测试流程图以便理解。测试流程确保了软件质量,是面试中常见的考察点。
74 7
拆分软件测试流程,一张图秒杀所有面试
|
2月前
|
NoSQL 测试技术 Redis
第一次面试总结 - 迈瑞医疗 - 软件测试
本文是作者对迈瑞医疗软件测试岗位的第一次面试总结,面试结果非常好,但面试过程中没有提问太多技术性问题,主要围绕个人介绍、互相了解、个人规划和项目亮点进行,因此作者认为这次面经的学习意义不大。作者还提到了实习岗位的待遇和工作内容,以及对不同阶段求职者的建议。
56 2
|
4月前
|
SQL 安全 测试技术
[go 面试] 接口测试的方法与技巧
[go 面试] 接口测试的方法与技巧
|
4月前
|
自然语言处理 网络协议 JavaScript
23.2月 可能七牛云实习测试面试(技术面一面)面经整理
关于2月进行的七牛云实习测试面试(技术面一面)的面经整理,涵盖了多个技术问题,包括马尔可夫链的用处、软件测试工具、TCP/IP协议的三次握手过程、TCP与UDP的区别、网络诊断方法、DNS的作用、ifconfig命令的用途、Spring Boot的优势以及Java中Map的了解,还包括了一个编程题目:在n个书中找出k个最小的数。
|
5月前
|
IDE Java 测试技术
Java面试题:什么是Java中的单元测试以及如何编写单元测试?
Java面试题:什么是Java中的单元测试以及如何编写单元测试?
198 1
|
6月前
|
jenkins 测试技术 持续交付
30个接口自动化测试面试题,赶紧收藏
接口自动化测试是使用工具验证接口功能、性能和安全性的自动化过程。它能提升测试效率,减少人工工作量,及时发现问题。常见工具包括Postman、SoapUI和JMeter。测试涉及需求分析、测试计划、用例设计、脚本编写、执行、报告生成及问题跟踪。测试用例涵盖输入数据、预期结果等,脚本包含请求和响应细节。断言验证接口正确性,数据驱动测试使用多数据验证,性能测试检查响应时间等,安全测试关注认证和加密,Mock测试模拟数据,集成测试验证接口交互,回归测试确保修改未破坏原有功能,异常处理确保测试稳定性,并发和压力测试检查系统负载,持续集成通过工具如Jenkins保证软件质量。
237 3
|
5月前
|
IDE Java 测试技术
Java面试题:描述在Java中使用JUnit进行单元测试的过程
Java面试题:描述在Java中使用JUnit进行单元测试的过程
55 0
|
6月前
|
安全 网络安全 网络协议
精选30道“渗透测试工程师”面试题
渗透测试 信息收集 网络安全 web安全
312 3
|
6月前
|
测试技术 Linux 开发工具
软件测试之【面试题综合训练题】
软件测试之【面试题综合训练题】
78 0
|
7月前
|
XML 安全 网络安全
渗透测试初级面试题
答:.先爆破用户名,再利用被爆破出来的用户名爆破密码;其实有些站点,在登 陆处也会这样提示;所有和数据库有交互的地方都有可能有注入。 如果你看到了这里,那就点个关注+评论呗! 如需资料可私信,回复不及时,请见谅! 网安面经,试题,题库,需要哪个评论区私信