此部分代码主要想使用python处理多session配置文件的读取。同样适用于在做自动化时,python读取表格,表格中有测试用例,测试步骤。只描述的话没感觉。下面举例子。
session配置文件
- [session]
- username=api.lp.bcho
- password=123456
- connectSocket=127.0.0.1
- port=6001
-
-
- [session]
- username=api.lp.icbc
- password=234567
- connectSocket=127.0.0.2
- port=6002
-
- [session]
- username=api.lp.desz
- password=345678
- connectSocket=127.0.0.8
- port=6009
读取代码
- session_path = "imixsettings.cfg"
-
- class Session:
- def __init__(self):
- #self.username = ""
- #self.password = ""
- #self.connectSocket = ""
- #self.port = ""
- pass
-
- def __str__(self):
- return "username="+self.username+",password="+self.password\
- +",connectSocket="+self.connectSocket+",port="+self.port
-
- def get_sessions(file_name, session_name):
- fd = open(file_name, "r")
- lines = []
- # 获取总的session数,去除空行
- cnt = 0
- for line in fd.readlines():
- data = line.strip()
- if len(data) >0:
- lines.append(data)
- if data.__eq__("["+session_name+"]"):
- cnt +=1
- fd.close()
- # 遍历session
- sessions = []
- start = 0 #记录session开始位置
- #end记录session结束位置
- for index in range(cnt):
- session = Session()
- if index < cnt-1:
- start = lines.index("["+session_name+"]",start)
- end = lines.index("["+session_name+"]",start+1)
- else:
- end = len(lines)
- # 跳过[session]行
- for data in lines[start+1:end]:
- vk = data.split("=")
- # 通过反射给属性赋值
- setattr(session,vk[0].strip(),vk[1])
- sessions.append(session)
- start = end
-
- return sessions
-
-
-
- if __name__ == "__main__":
- sessions = get_sessions(session_path, "session")
- for session in sessions:
- print(session)