python学习笔记(pict+requests+xml)
2024-08-31 16:28:46
博主尝试了下更换python版本
之前很多脚本改正运行错误后、还是不能正常运行
忙会了半天还是没有成功
只好还原版本
所以下面的代码还没实际运行成功、先记录下
#!/usr/bin/env python
# -*- coding: utf-8 -*- import subprocess
from createtest import CreateTest
import json
from xml.dom import minidom
import sys old_name = "case_login.txt"
new_name = "case_list.txt"
cmd = "pict " + old_name + " > " + new_name
path = "E:\work\python project" # noinspection PyTypeChecker,PyCallByClass
class CreateCase:
reload(sys)
sys.setdefaultencoding("utf-8") def __init__(self):
pass @classmethod
def case_cmd(cls):
subprocess.Popen(args=cmd, shell=True, stdout=subprocess.PIPE, cwd=path)
print "接口测试用例生成成功" @classmethod
def case_list(cls):
case_list = []
file_txt = open(new_name, "r+")
for line in file_txt.readlines():
line_txt = line.replace("\n", '').split("\t")
case_list.append(line_txt)
return case_list
# txt读取拆分截取 @classmethod
def case_data(cls):
data_list = []
for l in range(1, len(CreateCase.case_list())):
data_dict = {CreateCase.case_list()[0][0].decode("gbk"): CreateCase.case_list()[l][0].decode("gbk"),
CreateCase.case_list()[0][1].decode("gbk"): CreateCase.case_list()[l][1].decode("gbk")}
data_str = json.JSONEncoder().encode(data_dict)
data_json = json.loads(data_str)
data_list.append(data_json)
return data_list
# 创建字典转化json字符串、再转化成json格式 @classmethod
def case_result(cls):
post = "post"
url = "http://localhost:8081/swcw/back/sysLogin.action"
xml = minidom.Document()
xml.appendChild(xml.createComment("测试报告"))
caselist = xml.createElement("caselist")
xml.appendChild(caselist)
for i in range(0, len(CreateCase.case_data())):
case_result = CreateTest.test_api(post, url, CreateCase.case_data()[i])
case_code = str(case_result.status_code)
case_name = str(CreateCase.case_data()[i])
case_pattern = u"个人信息"
case_id = "swcw" + str(i)
try:
CreateTest.test_http(case_result.status_code)
except AttributeError:
pass
# 生成xml文件
case = xml.createElement("case")
case.setAttribute("id", case_id)
# 输入用例ID name = xml.createElement("name")
name.appendChild(xml.createTextNode(case_name))
# 输入用例名称
method = xml.createElement("method")
method.appendChild(xml.createTextNode(post))
# 输入接口类型
code = xml.createElement("code")
code.appendChild((xml.createTextNode(case_code)))
# 输入用例返回状态码
result = xml.createElement("result")
result.appendChild(xml.createTextNode(CreateTest.test_result(case_pattern, case_result.text)))
# 输入用例测试结果
time = xml.createElement("time")
time.appendChild(xml.createTextNode(CreateTest.test_time()))
# 输入用例执行时间 case.appendChild(name)
case.appendChild(method)
case.appendChild(code)
case.appendChild(result)
case.appendChild(time) caselist.appendChild(case)
# xml文件生成结束
filename = open(CreateTest.test_report(), "w+")
# 生成以当前时间命名的测试报告文件
xml.writexml(filename)
filename.close()
# 关闭文件 if __name__ == '__main__':
CreateCase.case_result()
最新文章
- 今天搞了一天的CentOS,唉,实在感觉自己渺小啊
- java int与integer的区别
- 多态(RAW)
- C语言实现单链表-01版
- js apply/call/caller/callee/bind使用方法与区别分析
- IOS开发之功能模块--自定义导航控制器类常用自定义的代码
- 关于DCMTK3.6.1源代码编译的总结
- NOIP模拟赛 by hzwer
- [Irving]SqlServer 标量函数 详解【转】
- sql语句书写升降序
- python字符串(移除空白,长度,索引,分割,切片,拼接,格式化输出)
- 构建一个最简单的web应用并部署及启动
- 【每天一道算法题】Numeric Keypad
- C语言中变量的作用域和生命周期
- mysql水平分表和垂直分表的优缺点
- Flash Builder4.0运行应用程序报错
- JavaScript(第二十二天)【动态加载js和css】
- 知物由学|游戏开发者如何从容应对Unity手游风险?
- hexo 建站参考
- 行业观察报告:从SAAS困局看行业趋势 ZT
热门文章
- Linux磁盘管理命令(fdisk,mount,umount,mkfs)
- 命名空间 <;iostream>;和<;iostream.h>; 由程序设计者命名的内存区域
- PHP中Trait详解及其应用
- 个人觉得存成char(12),优于varchar(12)
- 4.Data Types in the mongo Shell-官方文档摘录
- django--之登录表单提交
- 利用EasySQLMAIL实现自动数据提取和邮件发送功能 (1)
- Android用surface直接显示yuv数据(三)
- C++11中的array
- Java io流详解二