test_cfg.txt
------------------------------------------------
[Notification Server]
URL=/mdmi/ns.py
REST_InstallProfile=/mdmi/rg9Z9UduPoEK2oQIhZFUcqeriGR12Es7/v1/profile/install
REST_RemoveProfile=/mdmi/rg9Z9UduPoEK2oQIhZFUcqeriGR12Es7/v1/profile/remove
REST_InstallProfile2=/mdmi/mZAg49qdRmAK2oQIhZFUcu2zPd7l8nQW/v1/profile/install
REST_RemoveProfile2=/mdmi/mZAg49qdRmAK2oQIhZFUcu2zPd7l8nQW/v1/profile/remove
REST_InstallProfile3=/mdmi/a51wJAWKV6gK2oQIhZFUclvo7+OoGKtu/v1/profile/install
REST_RemoveProfile3=/mdmi/a51wJAWKV6gK2oQIhZFUclvo7+OoGKtu/v1/profile/remove
REST_InstallProfile4=/mdmi/+9LHUbARmrcK2oQIhZFUckU6mhPB!NkS/v1/profile/install
REST_RemoveProfile4=/mdmi/+9LHUbARmrcK2oQIhZFUckU6mhPB!NkS/v1/profile/remove
REST_TestConnection=/mdmi/v1
Hybrid_REST_InstallProfile=/mdmi/yTjW8CeAdR8K2oQIhZFUcrSQWpw6QoAw/v1/profile/install
Hybrid_REST_RemoveProfile=/mdmi/yTjW8CeAdR8K2oQIhZFUcrSQWpw6QoAw/v1/profile/remove
Hybrid_REST_InstallProfile2=/mdmi/9JASL6VWha4K2oQIhZFUcmDrZxmNmpIG/v1/profile/install
Hybrid_REST_RemoveProfile2=/mdmi/9JASL6VWha4K2oQIhZFUcmDrZxmNmpIG/v1/profile/remove
Hybrid_REST_InstallProfile3=/mdmi/V8SFqNmmLE4K2oQIhZFUcj0exWHIjDp!/v1/profile/install
Hybrid_REST_RemoveProfile3=/mdmi/V8SFqNmmLE4K2oQIhZFUcj0exWHIjDp!/v1/profile/remove
Hybrid_REST_InstallProfile4=/mdmi/f7U3Tr+qp3AK2oQIhZFUcpN1XVjcEPk5/v1/profile/install
Hybrid_REST_RemoveProfile4=/mdmi/f7U3Tr+qp3AK2oQIhZFUcpN1XVjcEPk5/v1/profile/remove
[Connection]
Host=XXX.XXX.XX.XXX
Port=443
import ConfigParser
import multiprocessing
import uuid
import time
from datetime import datetime
import tmslog
CFG_DATA = "test_cfg.txt"
DEVICES_DATA = "devices_s_ard.txt"
SIMU_LOG = 'mdmi_simu_log.txt'
TEST_DATA = ConfigParser.ConfigParser()
TEST_DATA.read(CFG_DATA)
class NotificationSimu():
def __init__(self, flag=0, acct_index=0):
self.host = TEST_DATA.get("Connection", "Host")
self.port = TEST_DATA.get("Connection", "Port")
self.username = TEST_DATA.get("Connection", "Username")
self.username2 = TEST_DATA.get("Connection", "Username2")
self.username3 = TEST_DATA.get("Connection", "Username3")
self.username4 = TEST_DATA.get("Connection", "Username4")
self.password = TEST_DATA.get("Connection", "Password")
self.wrongpassword = TEST_DATA.get("Connection", "WrongPassword")
.......................
def multiple_process_installprofile():
#Get out devices info. from txt file
fd = open(DEVICES_DATA, 'r')
devices = fd.readlines()
fd.close()
con_num = 35
loop_num = 4000
block_size = 3000
starttime = time.time()
stime = datetime.now()
output = "mdmi REST simulator Start time : %s\n" %stime
print output
perf_log_content = output
speed = 35
sleep_round = 1
pool = multiprocessing.Pool(processes=con_num)
results = []
i = 0
for i in xrange(loop_num):
results.append(pool.apply_async(call_rest_install, (devices[i], acct_index, False, )))
if (i+1) % speed == 0:
time.sleep(sleep_round)
pool.close()
pool.join()
print '======================================================'
print 'res size: %d' %len(results)
for res in results:
print res.get()
print "Sub-process(es) done."
endtime = time.time()
etime = datetime.now()
output = "mdmi REST simulator End time : %s\n" % etime
print output
perf_log_content = perf_log_content + output
sec_cost = endtime - starttime
output = "mdmi REST simulaotr sent %d request with time cost: %d seconds.\n" % ((i+1), sec_cost)
print output
perf_log_content = perf_log_content + output
output = '-'*40 + '\n'
print output
perf_log_content = perf_log_content + output
save_perf_log(SIMU_LOG, perf_log_content)
本文介绍如何在Python中使用ConfigParser模块读取配置文件,通过实例展示了读取test_cfg.txt文件中的Notification Server和Connection部分,同时讨论了多进程安装配置文件的模拟过程。
343

被折叠的 条评论
为什么被折叠?



