http://blog.itpub.net/69942496/viewspace-2654371/
一、基础
1、常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
1-等价类划分、2-边界值分析法、3-错误推测法、4-因果图方法、6-场景分析方法
2、您认为做好测试用例设计工作的关键是什么?
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题
3、黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题
4、关于电梯,设计测试用例
5、登录页面的测试用例
1、UI测试
2、功能测试
3、接口测试
4、压力测试
单点登录,
非单点登录
5、安全性测试
6、兼容性测试
二、代码
1、python中可变对象和不可变对象
2、深拷贝和浅拷贝解析
https://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html
深拷贝是将对象本身复制给另一个对象。这意味着如果对对象的副本进行更改时不会影响原对象。在 Python 中,我们使用 deepcopy()函数进行深拷贝,使用方法如下:
深拷贝-Python 面试问题及答案
浅拷贝是将对象的引用复制给另一个对象。因此,如果我们在副本中进行更改,则会影响原对象。使用 copy()函数进行浅拷贝,使用方法如下:
浅拷贝—Python 面试问题及答案
3、列表和元祖有什么不同?
主要区别在于列表是可变的,元祖是不可变的。
4、super
5、能否解释一下 *args 和 **kwargs?
如果我们不知道将多少个参数传递给函数,比如当我们想传递一个列表或一个元组值时,就可以使用*args。
当我们不知道将会传入多少关键字参数时,使用**kwargs 会收集关键字参数。
6、Python 中的 pass 语句有什么作用?
我们在写代码时,有时可能只写了函数声明而没想好函数怎么写,但为了保证语法检查的正确必须输入一些东西。在这种情况下,我们使用 pass 语句。
三、SQL
四、工具
熟悉应用
了解应用的架构、功能逻辑
测试需求
需要将开发给定的需求转为吞吐量和响应时间。
根据测试目的,细化需求
测试准备
测试准备包括测试客户端机器准备、测试数据准备、测试脚本准备。
测试执行
测试的执行中,需要监控测试客户端和服务器性能,监控服务器端应用情况:
客户端的系统资源(cpu、io、memory)情况
服务端的系统资源(cpu、io、memory)情况
服务器的jvm运行情况
服务端的应用情况,看是否有异常
响应时间、吞吐量等指标
系统资源监控,linux下可以采用的工具有:vmstat、top、meminfo等。
JVM的监控,可以用jprofiler工具,linux下面的jmap、jhat等。
响应时间、吞吐量等,由grinder提供。
上述这些信息,一般在测试结束后,均需要归档整理,已备后续详细分析
我们自己开发一套脚本,用于以固定的频率获取测试客户端和服务器的vmstat和top输出、grinder的log,并从中截取有用信息保存,用于事后分析。
每次测试运行完以后,肯定会增加很多数据,需要考虑本次执行对数据量的影响,如果数据量的变化对后续测试会有影响,则需要清理数据。
测试分析
2、Jmeter
①、Jmeter的工作原理是什么?
②、常用的元件、插件有哪些?各自的作用是什么?
③、几个典型的场景,如何基于jmeter设计测试脚本?
比如:参数化、关联、控制TPS、接口加密验签、阶梯式加压、集合点、检查点等;
3、Jmeter怎么录制脚本,怎么过滤,线程组有哪些内容?
jmeter可以使用第三方的录制工具(badboy)或者使用jmeter自带的HTTP代理服务器录制脚本功能
jmeter录制原理:通过http代理服务器抓取用户操作网址过程中的链接
jmeter可以在设置http代理服务器的时候,选择过滤:HTTP(S) Test Script Recorder>>Requests Filtering>>URL Patterns to Exclude>>Add suggested Excludes(可以手动添加排除模式或者点击Add suggested Excludes,一般使用建议的排除模式) -- 过滤的目的:避免录制无用脚本!!!
线程组包括:线程组名,注释,线程组中的线程数(用户数量),线程组在多少时间发送完请求,循环次数。