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

2021-07-06 16:56:18 浏览数 (1)

为什么要使用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定位的写法等。

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

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

0 人点赞