广东湘恒智能科技有限公司
主营产品: 西门子PLC代理商,plc变频器,伺服电机,人机界面,触摸屏,线缆,DP接头
用Python模拟千军万马去做性能自动化测试 | 文末含直播福利
发布时间:2024-11-05

性能自动化测试是测试中重要的一环,性能测试包括客户端的性能测试、也包括服务端的性能测试。不过通常所说的性能测试、压力测试等倾向于指的是服务端的性能测试。


目前大多数应用都是基于HTTP协议的,所以本章性能自动化测试的介绍也主要围绕HTTP协议来进行阐述,当然基于性能自动化测试框架,结合Python各个包可以扩展到任何协议的性能自动化测试。


主流的性能测试工具有基于类C语言的LoadRunner、Java语言的Jmeter,小众的也有基于GO的Vegeta,基于lua语言的wrk等。本篇主要以Python为基础,通过线程、进程、协程的模拟来系统的介绍如何使用Python这个语言来做性能自动化测试。另外,本文主要聚焦在如何使用Python来做性能自动化测试,而性能测试当中的一些概念并不会过多的展开,所以遇到一些不清楚的概念,请参考搜索引擎的解释。


Python中模拟多用户的基础

在Python中可以通过多线程、多进程以及协程来模拟性能测试中的多用户的操作,本小节将结合这块的基础知识并与HTTP协议综合在一起模拟多用户的操作,并调用相关的内置函数来进行初步的结果分析。


实例1:如何用多线程来做性能测试


多线程是软件开发中不可避免的一个应用技术,同时也是性能测试中模拟多用户技术的基石。多线程具有同步完成多项任务的能力,从而提高资源的使用效率,使得相同的资源下,模拟出更多的用户,从而减少需要的资源。


但是需要注意的是,线程越多就越需要操作系统进行上下文的切换,占用的资源也就较多,所以单个进程能够模拟的线程线是有限的,做性能测试时需要观察测试机的资源使用情况。


在Python中如何使用多线程的技术来实现性能自动化测试请参考(代码示例所示)。


说明:在这个例子中,调用threading模块创建MyThread类,并在run()方法中收集每个线程运行的时间。运行结束后,使用max、min、get_median、get_avg函数,将获取的时间进行最大值、最小值、中间值、平均值的计算,然后打印出来获取的结果。从用户角度来评估系统的性能状况是最贴切的,因为对于用户来说使用软件只有一个感觉,那就是好不好用、够不够快,而评估用户感受到的性能指标,就主要是最大响应时间、中间值、最小响应时间、平均响应时间,这是统计学中的基本应用。



展开全文
拨打电话 微信咨询 发送询价