#encoding=utf-8
import requests
import json
import os
import hashlib

print "register------"
data = json.dumps({'username': 'lildddy1', 'password': 'wcx123wacs', 'email': 'lsily@qq.com'}) #
r = requests.post('http://39.106.41.11:8080/register/', data= data)
print r.status_code
print r.text
print type(r.json())
print str(r.json())

c:\Python27\Scripts>python
task_test.py

register------

200

{"username":
"lildddy1", "code": "01"}

<type
'dict'>

{u'username':
u'lildddy1', u'code': u'01'}

#encoding=utf-8

import requests

import json

import string

import random

import multiprocessing

from multiprocessing import Process, Pool, Value, Lock, Manager

import time

def test_register(lock,success_Count,failure_Count):

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

data_dict={'username': 'xxdddy', 'password': 'wcx123wacs', 'email': 'lsily@qq.com'}

for i in range(2):

data_dict["username"] =  "".join(random.sample(string.lowercase,10))+str(i)

data = json.dumps(data_dict) #

r = requests.post('http://39.106.41.11:8080/register/', data= data)

#print r.status_code

#print r.text

#print type(r.json())

print str(r.json())  #用json的规则,把服务器的接口返回转换为了一个字典

if r.json()["code"]=="00" and isinstance(r.json()["userid"],int):

lock.acquire()

success_Count.value+=1

lock.release()

else:

lock.acquire()

failure_Count.value+=1

lock.release()

#print "*"*50

if __name__ == '__main__':

lock=manager.Lock()#同学说用共享锁,改成lock=manager.Lock()

manager = Manager()

success_Count = manager.Value('i',0)

failure_Count = manager.Value('i',0)

proc_list = [Process(target=test_register, args=(lock,success_Count,failure_Count)) for i in range(2)]

for p in proc_list: p.start()

for p in proc_list: p.join()

print 'Waiting for all subprocesses done...'

print 'All subprocesses done.'

print success_Count.value

print failure_Count.value

c:\Python27\Scripts>python task_test.py

************

************

{u'code': u'00', u'userid': 2685}

{u'code': u'00', u'userid': 2686}

{u'code': u'00', u'userid': 2687}

{u'code': u'00', u'userid': 2688}

Waiting for all subprocesses done...

All subprocesses done.

4

0

单进程:

#encoding=utf-8

import requests

import json

import os

import hashlib

import string

success_count =0

faileure_count =0

print "register------"

data_dict={'username': 'xxdddy', 'password': 'wcx123wacs', 'email': 'lsily@qq.com'}

for i in range(5):

data_dict["username"] =  "xx2ddddy"+str(i)

data = json.dumps(data_dict) #

r = requests.post('http://39.106.41.11:8080/register/', data= data)

print r.status_code

print r.text

print type(r.json())

print str(r.json())  #用json的规则,把服务器的接口返回转换为了一个字典

if r.json()["code"]=="00" and isinstance(r.json()["userid"],int):

success_count+=1

else:

faileure_count+=1

print "*"*50

print "success count:",success_count

print "faileure count:",faileure_count

多进程的

方法1:

#encoding=utf-8

import requests

import json

import string

import random

import multiprocessing

from multiprocessing import Process, Pool, Value, Lock, Manager

import time

def test_register(lock,success_Count,failure_Count):

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

data_dict={'username': 'xxdddy', 'password': 'wcx123wacs', 'email': 'lsily@qq.com'}

for i in range(2):

data_dict["username"] =  "".join(random.sample(string.lowercase,10))+str(i)

data = json.dumps(data_dict) #

r = requests.post('http://39.106.41.11:8080/register/', data= data)

#print r.status_code

#print r.text

#print type(r.json())

print str(r.json())  #用json的规则,把服务器的接口返回转换为了一个字典

if r.json()["code"]=="00" and isinstance(r.json()["userid"],int):

lock.acquire()

success_Count.value+=1

lock.release()

else:

lock.acquire()

failure_Count.value+=1

lock.release()

#print "*"*50

if __name__ == '__main__':

lock = Lock()

manager = Manager()

success_Count = manager.Value('i',0)

failure_Count = manager.Value('i',0)

proc_list = [Process(target=test_register, args=(lock,success_Count,failure_Count)) for i in range(2)]

for p in proc_list: p.start()

for p in proc_list: p.join()

print 'Waiting for all subprocesses done...'

print 'All subprocesses done.'

print success_Count.value

print failure_Count.value

方法2:

#encoding=utf-8

import requests

import json

import string

import random

import multiprocessing

from multiprocessing import Process, Pool, Value, Lock, Manager

import time

def test_register(counter):

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

data_dict={'username': 'xxdddy', 'password': 'wcx123wacs', 'email': 'lsily@qq.com'}

for i in range(2):

data_dict["username"] =  "".join(random.sample(string.lowercase,10))+str(i)

data = json.dumps(data_dict) #

r = requests.post('http://39.106.41.11:8080/register/', data= data)

#print r.status_code

#print r.text

#print type(r.json())

print str(r.json())  #用json的规则,把服务器的接口返回转换为了一个字典

if r.json()["code"]=="00" and isinstance(r.json()["userid"],int):

#lock.acquire()

counter.increment_success_count()

#lock.release()

else:

#lock.acquire()

counter.increment_failure_count()

#lock.release()

#print "*"*50

class Counter(object):

def __init__(self, initval = 0):

self.success_count = Value('i', initval)

self.failure_count = Value('i', initval)

self.lock = Lock()

def increment_success_count(self):

with self.lock:

self.success_count.value += 1 # 共享变量自加1

def increment_failure_count(self):

with self.lock:

self.failure_count.value += 1 # 共享变量自加1

def get_success_count(self):

with self.lock:

return self.success_count.value

def get_failure_count(self):

with self.lock:

return self.failure_count.value

if __name__ == '__main__':

#lock = Lock()

manager = Manager()

counter= Counter()

proc_list = [Process(target=test_register, args=(counter,)) for i in range(2)]

for p in proc_list: p.start()

for p in proc_list: p.join()

print 'Waiting for all subprocesses done...'

print 'All subprocesses done.'

print counter.get_success_count()

print counter.get_failure_count()

用进程池子Pool

方法3:

#encoding=utf-8

import requests

import json

import string

import random

import multiprocessing

from multiprocessing import Pool, Value,Manager

import time

def test_register(lock,success_Count,failure_Count):

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

data_dict={'username': 'xxdddy', 'password': 'wcx123wacs', 'email': 'lsily@qq.com'}

for i in range(2):

data_dict["username"] =  "".join(random.sample(string.lowercase,10))+str(i)

data = json.dumps(data_dict) #

r = requests.post('http://39.106.41.11:8080/register/', data= data)

#print r.status_code

#print r.text

#print type(r.json())

print str(r.json())  #用json的规则,把服务器的接口返回转换为了一个字典

if r.json()["code"]=="00" and isinstance(r.json()["userid"],int):

lock.acquire()

success_Count.value+=1

lock.release()

else:

lock.acquire()

failure_Count.value+=1

lock.release()

#print "*"*50

if __name__ == '__main__' :

manager = Manager()

lock =manager.Lock()

success_Count = manager.Value('i',0)

failure_Count = manager.Value('i',0)

pool = Pool(3)  # start 4 worker processes

pool.apply_async(test_register,args=(lock,success_Count,failure_Count))

pool.apply_async(test_register,args=(lock,success_Count,failure_Count))

pool.close()

pool.join()

print "Process end."

print "success count:",success_Count.value

print "faileure count:",failure_Count.value

python 多进程并发接口测试实例的更多相关文章

  1. Python多进程并发(multiprocessing)用法实例详解

    http://www.jb51.net/article/67116.htm 本文实例讲述了Python多进程并发(multiprocessing)用法.分享给大家供大家参考.具体分析如下: 由于Pyt ...

  2. python多进程并发和多线程并发和协程

    为什么需要并发编程? 如果程序中包含I/O操作,程序会有很高的延迟,CPU会处于等待状态,这样会浪费系统资源,浪费时间 1.Python的并发编程分为多进程并发和多线程并发 多进程并发:运行多个独立的 ...

  3. python 多进程并发与多线程并发

    本文对python支持的几种并发方式进行简单的总结. Python支持的并发分为多线程并发与多进程并发(异步IO本文不涉及).概念上来说,多进程并发即运行多个独立的程序,优势在于并发处理的任务都由操作 ...

  4. Python多进程并发操作进程池Pool

    目录: multiprocessing模块 Pool类 apply apply_async map close terminate join 进程实例 multiprocessing模块 如果你打算编 ...

  5. [转]Python多进程并发操作中进程池Pool的应用

    Pool类 在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大量的时间.如果操作的对象数目不大时,还可以直接使用Process类动态的生成多个进程,十 ...

  6. Python多进程并发操作中进程池Pool的应用

    Pool类 在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大量的时间.如果操作的对象数目不大时,还可以直接使用Process类动态的生成多个进程,十 ...

  7. python多进程并发

    由于Python下调用Linux的Shell命令都需要等待返回,所以常常我们设置的多线程都达不到效果,因此在调用shell命令不需要返回时,使用threading模块并不是最好的方法.   http: ...

  8. python多进程并发redis

    Redis支持两种持久化方式RDB和AOF,RDB持久化能够快速的储存和回复数据,但在服务器停机时会丢失大量数据,AOF持久化能够高效的提高数据的安全性,但在储存和恢复数据方面要耗费大量的时间,最好的 ...

  9. PYTHON多进程并发WEB服务器(利用LINUX的FORK)

    这个又牛X 一点点.. 这还不涉及IO,如果调用GEVENT之类作异步IO或非阻塞IO,那就大框架都有啦.. ############################################# ...

随机推荐

  1. mac操作

    资料搜集: mac终端 常用命令操作 mac osx常用快捷键一览 mac chrome快捷键

  2. Git - could not read Username for 'https://github.com',push报错解决办法

    执行git push命令异常,如下: git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sou ...

  3. geotrellis使用(三十二)大量GeoTiff文件实时发布TMS服务

    前言 在上一篇文章中我讲了如何直接将Geotiff文件发布为TMS服务,在其中只讲了单幅Geotiff的操作,其实单幅这种量级的数据对Geotrellis来说就是杀鸡焉用牛刀,Geotrellis针对 ...

  4. Centos6.5安装pip命令以及中途遇到的问题

    一.Centos6.5安装pip命令时可能会遇到的问题 1.安装setuptools模块时python安装模块时报异常:Compression requires the (missing) zlib ...

  5. Unity事件处理机制与NGUI事件机制

    1 Unity原生 1.1 GUI void OnGUI(){ if(GUI.Button(Rect position, string text)){ //点击后立即执行 } 1.1 Input 每个 ...

  6. 43(function pointer 1)

    #include<iostream> using namespace std; typedef int A; typedef void (*PF)(); typedef int (*P_A ...

  7. RFQ 、IFB、RFP 、RFI的区别是什么

    询价类型 信息索取书 RFI 报价申请书 RFQ 建议要求书 RFP 投标邀请书 IFB 目的 获得与产品服务供应商相关信息 取得供应商对所需产品.服务或服务的承诺 要求供应商对需求提出最好解决方案建 ...

  8. 优云软件助阵ArchSummit全球架构师峰会

    由极客邦科技与 InfoQ 中国主办的 ArchSummit 全球架构师峰会深圳站,于 7 月 7 日 - 8 日在深圳华侨城洲际酒店举办. 本次大会特邀 100 多位国内外技术专家,与1000余名技 ...

  9. 洛谷P2279 消防局的设立 [HNOI2003] 贪心

    正解:贪心 解题报告: 传送门! 这题贪心得挺显然的,,,?居然能有蓝,,,是蓝题太水了嘛,,,? 简单说下,这题一看到就能想到,对最低的没被覆盖到的点给它的祖父建一个消防局 没了? 哦这题实现还挺有 ...

  10. 腾讯在线文档发布:实现QQ、微信多平台多人协作编辑

    18日,腾讯宣布推出专注多人协作的在线文档产品—腾讯文档,据介绍,腾讯文档是一款支持随时随地创建.编辑的多人协作式在线文档工具,拥有一键翻译.实时股票函数和浏览权限安全可控等功能,以及打通QQ.微信等 ...