1.作用不同
功能测试主要用于产品的各功能验证。根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
 
接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
 
2.侧重点不同
功能测试和接口测试最大的区别在于,功能测试侧重点是前端ui界面、数据展示、图形界面、业务逻辑操作等;而接口测试侧重点是后端返回的数据是否正确、接口是否正常。
 
3.用户场景不同
功能测试有多用户(并发)的概念,而接口测试只是单用户场景。我们做接口测试是是用于验证接口的请求和返回是否匹配(其实可以理解成接口测试也是一种功能测试);而功能测试则是很多人同时在做这种接口测试,更侧重于真实的用户场景。因为我们研发完的产品投入市场后,不会就专门给某一个人使用功能,肯定是会有很多人同时在用我们的产品功能。
 
4.配置场景不同
如果是功能测试首先要配置多用户(或者说多线程),而接口测试不用;其次,如果是功能测试,建议关掉断言(否则可能压不上去,因为断言会耗费LR或者Jmeter自身的性能);最后如果是功能测试,如果压测不上去,还可能需要做分布式(简单来说,就是多台机器同时执行性能测试)。
 
5.测试场景不同
接口测试一般是用断言来验证接口的正确性,在执行性能测试场景的时候,要加入另外的校验方式:(1)最基本的三个:多用户下接口的响应时间,qps/tps(每秒请求量),出错率;(2)服务器上的资源监控(cpu,内存,io);(3)被测服务的资源监控(多个服务的cpu,内存,io)以及错误日志。
 
当接口测试出了问题,可以通过断言迅速知道出了问题;而功能测试出了问题,需要从多个方面多个维度去调试定位,因此功能测试对于系统架构的理解能力要求更高。