#coding:utf8

#!/usr/bin/env python

import threading

import httplib

import random

import time

import os

import sys

import urllib2

from Queue import Queue

#http://192.168.1.254:9090/2013/10/10/p_131010210525-moveWorldMap/9711-40380.zip

'''

class :RequestThread 请求URL

func :request_url(self) 创建各个线程任务

'''

class RequestThread(threading.Thread):

def __init__(self,thread_name):

threading.Thread.__init__(self)

self.error_num = 0

self.url_num = 0

self.thread_name = thread_name

def run(self):

print("%s---time is %s "%(threading.currentThread(),time.ctime(),))

time.sleep(10)

self.request_url()

#单个线程的任务

def request_url(self):

try:

file = open('urls.txt','r')

for line in file.readlines():

self.url_num +=1

url = line.strip()

html = urllib2.urlopen(url).read()

except urllib2.URLError,e:

print e

self.error_num +=1

'''

func: start_thread(thread_num) 生成多个处理线程

int thread_num :传入并发的线程个数

return:

time_total 多个并发进程完成一次循环所用时间

error_num 请求失败的页面数

url_num 请求的url数

'''

def start_thread(thread_num):

time_start = time.time()

threads = []

for i in range(thread_num):

thread = RequestThread('thread'+str(i))

thread.setDaemon(True)

threads.append(thread)

for t in threads:

t.start()

for t in threads:

t.join()

time_end = time.time()

time_total = time_end - time_start

print "每个循环耗时%s秒"%(time_total)

#获取类属性

error_num = thread.error_num

url_num = thread.url_num

return time_total,error_num,url_num

'''

func: work(work_num) 每个线程做同一个任务循环的次数

int work_num: 任务循环次数

int thread_num:需要并发的进程数

'''

def work(work_num,thread_num):

time_all = 0

i=0

while i < work_num:

i +=1

time_total,error_num,url_num = start_thread(thread_num)

# print time_total

time.sleep(2)

time_all = time_all + time_total

print "第 %s 次循环结束"%(i)

print "*****************************************************"

print "总共运行耗时:%f秒"%(time_all)

print "错误数:%s"%(error_num)

print "总计请求了%s个页面"%(work_num*thread_num*url_num)

if __name__ == "__main__":

#thread_num,创建并发线程的数量

thread_num = 10

work_num = 2

# start_thread(thread_num)

work(work_num,thread_num)

python脚本 数据库压力测试_python-网站压力测试脚本相关推荐

  1. python网站后台_Python 网站后台扫描脚本

    Python 网站后台扫描脚本 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ...

  2. 电脑网页压力测试软件,网站压力测试工具

    网站压力测试软件可以测试不同上网方式.不同地区.访问Web不同页面.在不同并发访问密度情况下的客户端响应时间.流量和流速,实现极高的服务器测试,数据精准.网站压力测试软件适用于所有windows平台, ...

  3. 网站 压力 测试软件,网站压力测试软件

    这是网站压力测试软件下载,网站压力测试软件可以测试不同上网方式.不同地区.访问Web不同页面.在不同并发访问密度情况下的客户端响应时间.流量和流速,实现极高的服务器测试,数据精准.网站压力测试软件适用 ...

  4. python查询数据库后更新_python 实现数据库中数据添加、查询与更新的示例代码...

    一.前言 最近做web网站的测试,遇到很多需要批量造数据的功能:比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据:本次 ...

  5. python访问数据库统一方法_Python 3.x 连接数据库(pymysql 方式)

    参考:http://www.cnblogs.com/woider/p/5926744.html ==================pymysql=================== 1.PyMyS ...

  6. python连数据库课程设计_python 连接操作 各类数据库

    摘要: 用Python写脚本也有一段时间了,经常操作数据库(MySQL),现在就整理下对各类数据库的操作,如后面有新的参数会补进来,慢慢完善. 一,python 操作 MySQL:详情见:这里 mac ...

  7. python能制作游戏吗_python怎么制作游戏脚本

    本文将以4399小游戏<宠物连连看经典版2>作为测试案例,通过识别小图标,模拟鼠标点击,快速完成配对完成游戏脚本. 浏览器打开游戏窗口(单个一个窗口),游戏主要界面截图需要两个坐标(左上角 ...

  8. python mysql数据库长连接_python 连接mysql数据库

    python34之殇--DJango连接Mysql数据库 系统环境: 64位 windows 7 + python34 + Django 1.8 问题描述: 因为MySQLdb不兼容python3.x ...

  9. abaqus的python安装文件在哪_python、abaqus执行脚本路径

    python中获取执行脚本路径方法 1.sys.path[0]:获取执行脚本目录绝对路径 #每次执行脚本时,python会将执行脚本目录加入PYTHONPATH环境变量中(sys.path获取) #! ...

  10. python快递分拣小程序_python英语单词测试小程序代码实例

    这篇文章主要简介了python英语单词测试小程序代码实例,文中通过示例代码简介的非常具体,对大家的学习或者工作具有一定的参考学习网上卖,需要的朋友可以学习下 爬取了扇贝英语网,并制作了一个英语单词测试 ...

最新文章

  1. 戴上脑机接口头盔,他用大脑跟别人「说话」
  2. 文巾解题 1446. 连续字符
  3. 线程中start()与run()的区别
  4. mysql主主复制某张表_MySQL主主复制实战
  5. 【Python基础】在pandas中使用pipe()提升代码可读性
  6. python自动发送微信-Python自动定时发送微信消息
  7. 学习vim的正确姿势!
  8. redis-py说明文件(转)
  9. vue和小程序哪个好学一点_litemall,Spring Boot后端,微信小程序用户前端 + Vue用户移动端...
  10. 摩拜单车又涨价了!真的要骑不起了
  11. 建站+流量+运营,跨境电商的2021
  12. BERT模型—3.BERT模型在ner任务上的微调
  13. 【数学建模】评价类算法
  14. 7. 稀疏表示之OMP,SOMP算法及openCV实现
  15. 小米5月10日发布会--miui8
  16. design pattern scard
  17. 使用Photoshop辅助线制作ps切片教程
  18. 电脑只有一个c盘怎么办?看我怎么一招解决!
  19. 实验室设备测量超低偏置电流的实用技巧
  20. 问题解决:openCV处理视频、手机拍摄视频自旋转(90度)

热门文章

  1. libsvm java api文档,libsvm-javaAPI
  2. 前端如何查看音频的长度_重学前端基础:如何查看文档对象的所有属性?如何文档查找节点?...
  3. 【坑爹升级】更新NVIDIA GeForce GTX Ti最新驱动,突然屏幕亮瞎我24K钛合金双眼。导致Fn+F2/F3、win+x无法控制笔记本电脑显示器亮度调整, 电源选项屏幕亮度也不见了!
  4. 对ARM异常(Exceptions)的理解
  5. COCO KeyPoints关键点数据集准备
  6. 洛谷P4480 【[BJWC2018]餐巾计划问题】
  7. 什么是ObjCTypes?
  8. JS如何判断json是否为空
  9. Hadoop概念学习系列之为什么hadoop/spark执行作业时,输出路径必须要不存在?(三十九)...
  10. CSS中各种各样居中方法的总结