软件测试面试题汇总(二)

1.交互性测试的异常场景

交互测试的测试方法是在测试一个功能点时同时随机穿插多个不同的事件,查看不同事件对这个功能点的影响情况,然后在每步之间从事件列表中挑选一个事件进行测试。

2.如何搭建web自动化框架

可参考https://www.jianshu.com/p/71e04066be61

3.注册页面应该从哪些方面进行测试

可参考https://www.cnblogs.com/Jessy/p/3539638.html

4.冒泡排序

思路:按照题目的要求,毫无疑问,正确的结果应该就像这样: 1 2 3 4 5 6 7 8 9 10 要做到这样,最简单和最直接想到的方法就是进行对比交换。

首先,把10个数里最小的个数放到下标为0的位置上(str[0])

通过将下标为0的数(str[0])与剩下其余9个数进行对比交换(将较少者放置在下标为0的位置上),就可以得到这10个数最小的那个

10个数最小的那位确定后,接下来就要找剩下9个数最小的那个。

因为已经确定出一个最小的数,所以就不要动str[0],直接从str[1]开始,与剩下的8个数对比交换,找出9个数中最小的那位放到下标为1(str[1])的位置上

继续按照这个思路就可以将这十个数变成有序的(从小到大)的数组

public static void bubble_sort(int[] arr) {

int i, j, temp, len = arr.length;

for (i = 0; i < len - 1; i++)

for (j = 0; j < len - 1 - i; j++)

if (arr[j] > arr[j + 1]) {

temp = arr[j];

arr[j] = arr[j + 1];

arr[j + 1] = temp;

}

}

5.SQl:group by,update

select 类别, count(*) as 数量之和 from A group by 类别

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'

6.Oracle没有top的用法,用什么代替

oracle中查询前10条数据与sql server不同。

sql server:

SELECT top 10 * FROM EMP ORDER BY sal DESC;

在sql server里是使用top来表示前10条的信息。

oracle:

SELECT * FROM EMP WHERE ROWNUM <= 10 ORDER BY sal DESC;

在oracle中是使用ROWNUM 来表示前10条的信息。

7.fillder主要用来做什么

抓包、Web断点调试、前后端接口调试、页面性能优化和分析

8.web自动化时,浏览器打不开的原因有哪些
9.selenium、jmeter的优缺点

利用Jmeter做功能测试有以下优点:

Ø 不依赖于界面,如果服务正常启动,传递参数明确就可以添加测试用例,执行测试

Ø 测试脚本不需要编程,熟悉http请求,熟悉业务流程,就可以根据页面中input对象来编写测试用例。

Ø 测试脚本维护方便,可以将测试脚本复制,并且可以将某一部分单独保存。

Ø 可以跳过页面限制,向后台程序添加非法数据,这样可以测试后台程序的健壮性。

Ø 利用badboy录制测试脚本,可以快速的形成测试脚本

Ø Jmeter断言可以验证代码中是否有需要得到的值

Ø 使用参数化以及Jmeter提供的函数功能,可以快速完成测试数据的添加修改等

利用Jmeter做功能测试有以下缺点:

Ø 使用Jmeter无法验证JS程序,也无法验证页面,所以需要手工去验证。

Ø Jmeter的断言功能不是很强大

Ø 就算是jmeter脚本顺利执行,依旧无法确定程序是否正确执行,有时候需要进入程序查看,或者查看Jmeter的响应数据。

Ø Jmeter脚本的维护需要保存为本地文件,而每个脚本文件只能保存一个测试用例,不利于脚本的维护。

Selenium优点:

开源,免费

多浏览器支持:Firefox、Chrome、IE、Opera、Safari

多平台支持:Linux 、windows、Mac

多语言支持:Java、Python、ruby、PHP、C#、JavaScript

对web 页面有良好的支持

简单(API 简单)、灵活(用开发语言驱动)

支持分布式测试用例执行

10.自动化过程中,找不到元素的原因有哪些?
11.selenium常用的类,方法

1).新建实例

driver = webdriver.Chrome()

2).获取当前页面Url的函数

方法:current_url

实例:driver.current_url

3).表单的提交

方法:submit

解释:查找到表单(from)直接调用submit即可

实例:driver.find_element_by_id("form1").submit()

4).获取CSS的属性值

方法:value_of_css_property(css_name)

实例:driver.find_element_by_css_selector("input.btn").value_of_css_property("input.btn")

5).获取元素的属性值(一组元素中非常实用)

方法:get_attribute(element_name)

实例:driver.find_element_by_id("sellaiyuan").get_attribute("sellaiyuan")

6).判断元素是否被选中

方法:is_selected()

实例:driver.find_element_by_id("form1").is_selected()

7).返回元素的大小

方法:size

实例:driver.find_element_by_id("iptPassword").size

返回值:{'width': 250, 'height': 30}

8).判断元素是否显示(非常实用)

方法:is_displayed()

实例:driver.find_element_by_id("iptPassword").is_displayed()

9).判断元素是否被使用

方法:is_enabled()

实例:driver.find_element_by_id("iptPassword").is_enabled()

10).获取元素的文本值(非常实用)

方法:text

实例:driver.find_element_by_id("iptUsername").text

11).元素赋值

方法:send_keys(*values)

实例:driver.find_element_by_id("iptUsername").send_keys('admin')

12).删除浏览器所有的cookies

方法:delete_all_cookies()

实例:driver.delete_all_cookies()

13).删除指定的cookie

方法:delete_cookie(name)

实例:deriver.delete_cookie("my_cookie_name")

14).设置等待超时时间,可以在设置的时间内智能等待

方法:implicitly_wait(wait_time)

实例:driver.implicitly_wait(30)

15).查看浏览器的名字

方法:name

实例:drvier.name

16).打印title

方法:title

实例:deriver.title

12.selenium有哪些注解,beforeTest和beforeMethod谁先执行
13.页面未加载完成,定位元素的等待方式有哪些?

1)、强制等待

time.sleep(5) #等待5秒

2)、隐性等待

browser.implicitly_wait(30) #隐性等待

3)、显性等待

browser.find_element_by_link_text("贝壳规则添加").click()

browser.find_element_by_xpath("/html/body/div[2]/div[1]/ul/li[7]/ul/li[2]/a").click()

browser.implicitly_wait(10)

try:

WebDriverWait(browser, 20, 1).until(lambda x:x.find_elenium_by_xpath("/html/body/div[2]/div[1]/ul/li[7]/ul/li[2]/a"))

finally:

browser.close()

14.对登录进行压测,需要关注的指标有哪些

本机的CPU占用率,内存占用率 磁盘的读写指标

、网络的占用情况、 基础吞吐率、事务处理速度( 如平均登录时间,操作平均响应时间)

你可能感兴趣的:(软件测试面试题汇总(二))