SIEMENS西藏自治区日喀则市 西门子代理商——西门子西南总代理
| 更新时间 2024-11-26 07:00:00 价格 请来电询价 西门子总代理 PLC 西门子一级代 驱动 西门子代理商 伺服电机 联系电话 15903418770 联系手机 15915421161 联系人 张经理 立即询价 |
性能自动化测试是测试中重要的一环,性能测试包括客户端的性能测试、也包括服务端的性能测试。不过通常所说的性能测试、压力测试等倾向于指的是服务端的性能测试。
目前大多数应用都是基于HTTP协议的,所以本章性能自动化测试的介绍也主要围绕HTTP协议来进行阐述,当然基于性能自动化测试框架,结合Python各个包可以扩展到任何协议的性能自动化测试。
主流的性能测试工具有基于类C语言的LoadRunner、Java语言的Jmeter,小众的也有基于GO的Vegeta,基于lua语言的wrk等。本篇主要以Python为基础,通过线程、进程、协程的模拟来系统的介绍如何使用Python这个语言来做性能自动化测试。另外,本文主要聚焦在如何使用Python来做性能自动化测试,而性能测试当中的一些概念并不会过多的展开,所以遇到一些不清楚的概念,请参考搜索引擎的解释。
Python中模拟多用户的基础
在Python中可以通过多线程、多进程以及协程来模拟性能测试中的多用户的操作,本小节将结合这块的基础知识并与HTTP协议综合在一起模拟多用户的操作,并调用相关的内置函数来进行初步的结果分析。
多线程是软件开发中不可避免的一个应用技术,同时也是性能测试中模拟多用户技术的基石。多线程具有同步完成多项任务的能力,从而提高资源的使用效率,使得相同的资源下,模拟出更多的用户,从而减少需要的资源。
但是需要注意的是,线程越多就越需要操作系统进行上下文的切换,占用的资源也就较多,所以单个进程能够模拟的线程线是有限的,做性能测试时需要观察测试机的资源使用情况。
在Python中如何使用多线程的技术来实现性能自动化测试请参考(代码示例所示)。
说明:在这个例子中,调用threading模块创建MyThread类,并在run()方法中收集每个线程运行的时间。运行结束后,使用max、min、get_median、get_avg函数,将获取的时间进行Zui大值、Zui小值、中间值、平均值的计算,然后打印出来获取的结果。从用户角度来评估系统的性能状况是Zui贴切的,因为对于用户来说使用软件只有一个感觉,那就是好不好用、够不够快,而评估用户感受到的性能指标,就主要是Zui大响应时间、中间值、Zui小响应时间、平均响应时间,这是统计学中的基本应用。