微服务平台API测试

栏目: 后端 · 发布时间: 4年前

内容简介:1.项目结构是这样的。2.通用函数代码
编辑推荐:
本文来自于csdn,本文介绍了在微服务平台API测试过项目结构和代码过程等相关内容,希望对您的学习能有所帮助。

1.项目结构是这样的。

微服务平台API测试

2.通用函数代码

import json,pymysql,collections
 
 def read_json(path):
 with open(path,'r',encoding = 'utf-8') as load_f:
 load_dict = json.load(load_f)
 return load_dict
 
 def read_sql():
 db = pymysql.connect(db='chameleon_user', host='172.16.78.71', port=3306, user='root', passwd='1qazxsw2',charset='utf8')
 cursor = db.cursor()
 sql = 'select * from `%s`' % ('role')
 cursor.execute(sql)
 rows = cursor.fetchall()
 objects_list = []
 for row in rows:
 d = collections.OrderedDict()
 d['cardnum'] = row[0]
 d['bankname'] = row[1]
 d['phonenumber'] = row[2]
 d['rest'] = row[3]
 d['id_main'] = row[4]
 objects_list.append(d)
 
 j = json.dumps(objects_list)
 return j
 
 if __name__ == "__main__":
 json_from_sql = read_sql()
 print(json_from_sql)

3. 登陆代码

import requests
 import json
 
 class login():
 headers = {'Content-Type': 'application/json;charset=utf-8',
 'token': 'planceholder',
 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
 'userId': 'planceholder'
 }
 
 def __init__(self):
 self.login_url = 'http://172.16.78.72:8301/v1/chameleon-user/user/login'
 self.form_data = {'account':'admin',
 'password':'zs123YL!'}
 
 
 def get_login_token(self):
 try:
 r = requests.post(self.login_url,headers=self.headers,data = json.dumps(self.form_data))
 login_return_dicts = r.json()
 self.headers['token'] = login_return_dicts['token']
 self.headers['userId']= str(login_return_dicts['data']['userId'])
 #print(login_return_dicts)
 except:
 print('登陆平台失败!获取Token失败')
 return
 
 if __name__ == '__main__':
 l = login()
 l.get_login_token()
 print(login.headers['token'])
 print(login.headers['userId'])

4.模块运行

# coding=utf-8
 import requests,sys
 import unittest
 import json
 from common.read_file import read_json as readjson
 from common.login_platform import login as login
 
 login = login()
 login.get_login_token()
 
 class RunInstance(unittest.TestCase):
 def setUp(self):
 self.headers = login.headers
 self.instance_data = readjson(r'C:\Users\wenhuifu\ PycharmProjects\xu_api\Data\cloudmanager \RunInstance.json')
 self.url = 'http://172.16.78.73:3011/api /chameleon-cvg/instance'
 
 #@unittest.skip('不测试!')
 def test_run_instance(self):
 try:
 r = requests.post(self.url,headers = self.headers,json = self.instance_data)
 print(r.json())
 except:
 #print(err)
 print('创建机器失败!')
 
 assert r.status_code == 200
 
 def tearDown(self):
 pass
 
 
 if __name__ == '__main__':
 create = RunInstance()
 create.test_run_instance()

5.生成测试报告

from HTMLTestRunner_PY3 import HTMLTestRunner
 from email.mime.text import MIMEText
 from email.header import Header
 import smtplib
 import unittest
 import time
 import os
 
 #发送邮件
 def send_mail(file_new):
 f = open(file_new,'rb')
 mail_body = f.read()
 f.close()
 
 msg = MIMEText(mail_body,'html','utf-8')
 msg['Subject'] = Header("自动化测试报告",'utf-8')
 
 smtp = smtplib.SMTP()
 smtp.connect('smtp.126.com')
 smtp.login("username@126.com","123456")
 smtp.sendmail("username@126.com", "receive@126.com",msg.as_string())
 smtp.quit()
 print('Email has been send out!')
 
 def new_report(testreport):
 lists = os.listdir(testreport)
 lists.sort(key = lambda fn:os.path . getmtime (testreport + "\\" + fn))
 file_new = os.path.join(testreport,lists[-1])
 print(file_new)
 return file_new
 
 if __name__ == "__main__":
 now = time.strftime("%Y-%m-%d %H_%M_%S")
 filename = './Report/' + now + ' result.html'
 fp = open(filename,'wb')
 runner = HTMLTestRunner(stream=fp,title = 'XU API Test Result',description= '环境 Windows 10')
 discover = unittest.defaultTestLoader.discover ('./Testcase',pattern= '*_case.py')
 runner.run(discover)
 fp.closed

6.测试报告还是很直观的。

微服务平台API测试


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

分布式算法导论

分布式算法导论

泰尔 / 霍红卫 / 机械工业出版社 / 2004年09月 / 39.0

分布式算法20多年来一直是倍受关注的主流方向。本书第二版不仅给出了算法的最新进展,还深入探讨了与之相关的理论知识。这本教材适合本科高年级和研究生使用,同时,本书所覆盖的广度和深度也十分适合从事实际工作的工程师和研究人员参考。书中重点讨论了点对点消息传递模型上的算法,也包括计算机通信网络的实现算法。其他重点讨论的内容包括分布式应用的控制算法(如波算法、广播算法、选举算法、终止检测算法、匿名网络的随机......一起来看看 《分布式算法导论》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具