week 07 作业

用户头像
李锦
关注
发布于: 2020 年 07 月 22 日

 

用你熟悉的编程语言写一个web性能压测工具,输入参数:URL,请求总次数,并发数。输出参数:平均响应时间,95%响应时间。用这个测试工具以10并发、100次请求压测 baidu. com。

 

import hashlib
import threading
from time import *
from datetime import datetime
import requests
import json
THREAD_NUM = 10
ONE_WORKER_NUM = 10
sum_time = 0.00
success_count = 0




url ="https://www.baidu.com/"
login_response = requests.post(url, data)
c = login_response.cookies
def order():  
global c  
global sum_time  
global success_count  
t1 = time()
url1 = "http://www.baidu.com/"
make_response = requests.post(url, data = form_data1,cookies = c)
res = make_response.text
assert res == "success"
print ("成功")
t2 = time()
res_time = t2-t1
result = open("G:\\python\\res.txt", "a")
result.write("成功响应时间:"+str(res_time)+"\n")
result.close()
sum_time = sum_time+res_time
success_count = success_count+1


def working():  
global ONE_WORKER_NUM  
for i in range(0,ONE_WORKER_NUM):     
order()


def main():  
global THREAD_NUM  
Threads = []  
for i in range(THREAD_NUM):    
t = threading.Thread(target=working, name="T"+str(i))    
t.setDaemon(True)    
Threads.append(t)  
for t in Threads:    
t.start()  
for t in Threads:    
t.join()
if __name__ == "__main__":


main()  
result = open("D:\\python\\res.txt", "a")  
result.write("并发数:" + str(THREAD_NUM * ONE_WORKER_NUM) + "\n")  
result.write("成功数:" + str(success_count) + "\n") 
result.write("订单成功率:" + str(success_count / (THREAD_NUM * ONE_WORKER_NUM) * 100) + "%" + "\n") 
result.write("成功总响应时间:" + str(sum_time) + "\n")  
result.write("成功平均响应时间:" + str(sum_time / success_count) + "\n")  
result.write("tps:" + str((success_count) / (sum_time / success_count)) + "\n")  
result.clo

 




性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?

 

并发数

并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力。

 

吞吐量

吞吐量是指单位时间内系统能处理的请求数量

对于吞吐量来说,并发、响应时间与之相关可以用

QPS(TPS)= 并发数/平均响应时间

 

整体来说,

一般来说,在系统的设计范围之内,吞吐量随系统的并发用户数的增加呈现增加趋势,也就是说你客户端来多少请求数系统吃(处理)多少请求数;

 

当超出这个范围时有两种情况,一种是系统只能处理这么多,超过这个数系统不接收了,最后随着并发用户数的增多吞吐量是一个水平的直线;

 

还有一种情况是不管来多少系统都接收最后导致系统吞吐量下降甚至系统崩溃。

 

并发用户数是客户端单位时间内对服务器端施加的压力,具体能不能接受并处理要看被测系统的吞吐量,而吞吐量是被测系统单位时间内处理的请求数或者说单位时间内处理的字节数;

 

一个着重于客户端的操作即测试手段,一个着重于应用系统的处理能力即查看对象;

 



用户头像

李锦

关注

还未添加个人签名 2017.11.30 加入

还未添加个人简介

评论

发布
暂无评论
week 07 作业