def setUp(self): self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.post_url = '%s%s/users/login' % (API, Prefix) # 登录接口 self.header = { 'content-type': "application/json", 'x-platform': "web", } # 根据实际内容
def test08_logout(self): """登录帐号退出""" url = self.post_url + '/logout' header = self.header r = requests.post(url, headers=header) self.assertEqual(r.status_code, 200) rt = readconfig.ReadConfig() account = rt.get_account() if r.json()['data'][0]['account'] == '%s' % account: print('%s 帐号成功退出' % account)
def test15_modify_pwd(self): """修改个人帐号密码: 新密码与老密码相同,返回错误。""" self.t = get_token.GetToken() id = self.t.test_userid() url = self.post_url + '/pwd/set/%s' % id header = self.header self.rt = readconfig.ReadConfig() pw = self.rt.get_pw() #读取当前config文件中的pw值 data = {"old_password": "******" % pw, "new_password": "******" % pw} r = requests.post(url, data=json.dumps(data), headers=header) self.assertEqual(r.json()['code'], 4108) print('新旧密码一样,返回error信息为: %s' % r.json()['error'])
def setUp(self): self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.post_url = '%s%s/users' % (API, Prefix) #create users接口 self.t = get_token.GetToken() token = self.t.test_token() self.header = { 'content-type': "application/json", 'authorization': token, 'x-platform': "web", 'x-module-id': "7d94de1cdba7512a76fd42d71f537bfd" }
def setUp(self): self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.post_url = '%s%s/startpages' % (API, Prefix) # startpages接口 self.t = get_token.GetToken() token = self.t.test_token() self.header = { 'content-type': "application/json", 'authorization': token, 'x-platform': "web", 'x-module-id': "53640a1502e2819fa3cb5d6d796f866c" }
def setUp(self): self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.post_url = '%s%s/programs' % (API, Prefix) #create program接口 self.t = get_token.GetToken() token = self.t.test_token() self.header = { 'content-type': "application/json", 'authorization': token, 'x-platform': "web", 'x-module-id': "fecab02aa09d7fdecdee8c1941035ef2" }
def setUp(self): self.rt=readconfig.ReadConfig() API=self.rt.get_api() Prefix=self.rt.get_prefix() self.post_url = '%s%s/feedbacks'%(API,Prefix) #feedback接口 self.t=get_token.GetToken() token=self.t.test_token() self.header= { 'content-type': "application/json", 'authorization':token, 'x-platform':"web", 'x-module-id': "a8f3e2b3d7b38bdbb2bb13ea3508792d" }
def __init__(self,module_id): self.rt=readconfig.ReadConfig() API=self.rt.get_api() Prefix=self.rt.get_prefix() self.post_url = '%s%s/settings'%(API,Prefix) #settings接口 self.t=get_token.GetToken() token=self.t.test_token() self.header= { 'content-type': "application/json", 'authorization':token, 'x-platform':"web", 'x-module-id': "%s"%module_id }
def setUp(self): self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.post_url = '%s%s/smtps' % (API, Prefix) #smtps接口 self.t = get_token.GetToken() token = self.t.test_token() self.header = { 'content-type': "application/json", 'authorization': token, 'x-platform': "web", 'x-module-id': "04d3e8abbd7e750e778f59bbf5995e40" }
def setUp(self): self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.post_url = '%s%s/versions' % (API, Prefix) #versions接口 self.t = get_token.GetToken() token = self.t.test_token() self.header = { 'content-type': "application/json", 'authorization': token, 'x-platform': "web", 'x-module-id': "d9283d5be0d01a409fbfd801aa0ff62c" }
def setUp(self): self.rt=readconfig.ReadConfig() API=self.rt.get_api() Prefix=self.rt.get_prefix() self.post_url = '%s%s/downloads'%(API,Prefix) #Request Download Terminal Software接口 self.t=get_token.GetToken() token=self.t.test_token() self.header= { 'content-type': "application/json", 'authorization':token, 'x-platform':"web", 'x-module-id': "c64d9830c7688cb1366a954b97ff87e7" }
def setUp(self): self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.post_url = '%s%s/tmplprograms' % (API, Prefix ) #create tmplprograms接口 self.t = get_token.GetToken() token = self.t.test_token() self.header = { 'content-type': "application/json", 'authorization': "%s" % token, 'x-platform': "web", 'x-module-id': "03767159816cac28b1e3f2a0e0014b2b" }
def setUp(self): self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.post_url = '%s%s/factorydevices' % (API, Prefix ) #create factorydevices接口 self.t = get_token.GetToken() token = self.t.test_token() self.header = { 'content-type': "application/json", 'authorization': token, 'x-platform': "web", 'x-module-id': "a07120661734420a4f577898f46e4fa7" }
def setUp(self): self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.post_url = '%s%s/authdevices' % (API, Prefix ) #create authdevices接口 self.t = get_token.GetToken() token = self.t.test_token() self.header = { 'content-type': "application/json", 'authorization': token, 'x-platform': "web", 'x-module-id': "feead8e4b3443077d5b28e29288fbf4c" }
def setUp(self): self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.post_url = '%s%s/recharges' % (API, Prefix) # recharges接口 self.user = self.rt.get_account() self.t = get_token.GetToken() token = self.t.test_token() self.header = { 'content-type': "application/json", 'authorization': token, 'x-platform': "web", 'x-module-id': "161d77bb7e99f472f61ede6629b73ee6" }
def setUp(self): self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.post_url = '%s%s/subprograms' % (API, Prefix ) #create subprogram接口 self.t = get_token.GetToken() token = self.t.test_token() self.header = { 'content-type': "application/json", 'authorization': token, 'x-platform': "web", 'x-module-id': "2468aeb5eb109b45b3e29abcbf01867d" }
def download_programs(self): """多文件下载:获取下载文件包名""" oneid = self.test02_getprogram() self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() url = '%s%s/download/programs' % (API, Prefix) header = self.header data = ['%s' % oneid] r = requests.post(url, data=json.dumps(data), headers=header) self.assertEqual(r.status_code, 200) print(r.text) oneidname = r.json()['data'][0]["name"] print('返回第一个程序文件下载包name: %s' % oneidname) return oneidname
def download_tmpls(self): """公开模板列表中选择多个文件下载:获取下载文件包名""" oneid = self.test27_get_public() self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() url = '%s%s/download/tmplprograms' % (API, Prefix) header = self.header data = ["%s" % oneid] r = requests.post(url, data=json.dumps(data), headers=header) self.assertEqual(r.status_code, 200) print(r.text) oneidname = r.json()['data']['name'] print('返回第一个公开模板程序文件下载包name: %s' % oneidname) price = r.json()['data']['total_price'] print('下载模板需要的费用:%s' % price) return oneidname
def test25_countby_prov_comp(self): """遍历统计每个省份下每个公司名下的设备总数""" self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() provs = self.getall_prov_comp() print(provs) for prov in provs: for element in prov: url = '%s%s/auth-devices' % ( API, Prefix ) + '/%s' % element + '/%s' % prov[element] # 晕死,主接口名不一致,重新定义 header = self.header r = requests.get(url, headers=header) # self.assertEqual(r.status_code,200) print('按省份:%s &公司名称:%s 统计的设备总数:\n%s' % (element, prov[element], r.text))
def test19_modify_pwd(self): """成功修改个人帐号密码,并将新密码更新config.txt文件。""" self.t = get_token.GetToken() id = self.t.test_userid() url = self.post_url + '/pwd/set/%s' % id header = self.header self.rt = readconfig.ReadConfig() pw = self.rt.get_pw() #读取当前config文件中的pw值 opw = pw self.random = random_char.RandomChar() npw = self.random.random_char([], 6, 2) # 重新生成6位长度混合字符串 data = {"old_password": "******" % opw, "new_password": "******" % npw} r = requests.post(url, data=json.dumps(data), headers=header) self.assertEqual(r.status_code, 200) print('当前帐户id:%s,密码更新为:%s' % (id, npw)) obj = writeconfig.rwconfig() path = r"C:\Users\test\AppData\Local\Programs\Python\Python36\autotest\test_api\config.txt" obj.modifyconfig(path, 'base', 'pw', str(npw)) print('更新config.txt文件:[base]--pw值:%s' % npw)
def test0902_download_oneprogram(self): """仅下载单个程序文件""" pid = self.getprogram_name() self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.t = get_token.GetToken() token = self.t.test_token() url = '%s%s/download/programs/%s.robot' % (API, Prefix, pid) payload = { 'token': token, 'mid': 'fecab02aa09d7fdecdee8c1941035ef2', 'platform': 'web' } header = self.header r = requests.get(url, params=payload, headers=header) self.assertEqual(r.status_code, 200) print("单个程序文件下载接口调用成功:") print(r.text)
def test0901_download_programs(self): """多文件下载:下载文件""" name = self.download_programs() self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.t = get_token.GetToken() token = self.t.test_token() url = '%s%s/download/programs/%s' % (API, Prefix, name) payload = { 'token': token, 'mid': 'fecab02aa09d7fdecdee8c1941035ef2', 'platform': 'web' } header = self.header r = requests.get(url, params=payload, headers=header) self.assertEqual(r.status_code, 200) print("多个程序文件打包下载接口调用成功:") print(r.text)
def test2702_download_tmpls(self): # 模板程序不支持多文件下载接口 """公开模板列表中选择多个文件下载:下载文件""" name = self.download_tmpls() self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.t = get_token.GetToken() token = self.t.test_token() url = '%s%s/download/tmplprograms/%s' % (API, Prefix, name) payload = { 'token': token, 'mid': '03767159816cac28b1e3f2a0e0014b2b', 'platform': 'web' } header = self.header r = requests.get(url, params=payload, headers=header) print("多个模板文件下载接口调用返回:") print(r.text) self.assertEqual(r.status_code, 200)
def test0902_download_onepsub(self): """仅下载单个程序文件""" pid = self.getsub_name() self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.t = get_token.GetToken() token = self.t.test_token() url = '%s%s/download/subprograms/%s.robot' % (API, Prefix, pid) payload = { 'token': token, 'mid': '2468aeb5eb109b45b3e29abcbf01867d', 'platform': 'web' } header = self.header r = requests.get(url, params=payload, headers=header) self.assertEqual(r.status_code, 200) print("单个子程序文件下载接口调用成功:") print(r.text)
def test2703_download_onetmpl(self): """仅下载单个模板程序文件""" name = self.get_public_name() pid = self.test27_get_public() self.rt = readconfig.ReadConfig() API = self.rt.get_api() Prefix = self.rt.get_prefix() self.t = get_token.GetToken() token = self.t.test_token() url = '%s%s/download/tmplprograms/%s.robot' % (API, Prefix, name) payload = { 'token': token, 'pid': pid, 'mid': '03767159816cac28b1e3f2a0e0014b2b', 'platform': 'web' } header = self.header r = requests.get(url, params=payload, headers=header) self.assertEqual(r.status_code, 200) print("单个模板程序文件下载接口调用成功:") print(r.text)
def test03_nweuser_reset(self): """初始用户密码重置""" cf = configparser.ConfigParser() cf.read( 'C:\\Users\\test\\AppData\\Local\\Programs\\Python\\Python36\\autotest\\test_api\\info.txt' ) name = cf.get('info', 'comm_user') token = cf.get('info', 'comm_user_token') rt = readconfig.ReadConfig() API = rt.get_api() Prefix = rt.get_prefix() url = '%s%s/users/pwd/reset' % (API, Prefix) #rest接口 header = {'content-type': "application/json", 'Authorization': token} data = {"account": '%s' % name, "password": "******"} r = requests.post(url, data=json.dumps(data), headers=header) print(r.text) self.assertEqual(r.status_code, 200) print('初始密码重置成功!') obj = writeconfig.rwconfig() path = 'C:\\Users\\test\\AppData\\Local\\Programs\\Python\\Python36\\autotest\\test_api\\info.txt' obj.modifyconfig(path, 'info', 'comm_user_pw', "666666") print('更新config文件:ini_user_id')
def setUp(self): rt=readconfig.ReadConfig() self.API=rt.get_api() self.Prefix=rt.get_prefix() self.account=rt.get_account() self.password=rt.get_pw()
def setUp(self): self.rt = readconfig.ReadConfig() API = self.rt.get_api() self.get_url = '%s' % API
class ConfigEmail(): # 读取ini文件配置属性 r = readconfig.ReadConfig() # 配置第三方SMTP服务 mail_host = r.get_email('mail_host') mail_user = r.get_email('mail_user') mail_pass = r.get_email('mail_pass') # 配置邮件属性 sender = r.get_email('sender') receivers = r.get_email('receiver') content = r.get_email('content') msg = MIMEMultipart() print("mag", msg) #配置附件属性 def config_file(self): file = self.find_file() # print(file) sendfile = open(file, 'rb').read() att = MIMEText(sendfile, 'plain', 'utf-8') # print(att) att["Content-Type"] = 'application/octet-stream' att["Content-Disposition"] = 'attachment;filename=report.html' self.msg.attach(att) self.msg['From'] = self.mail_user self.msg['To'] = self.sender self.msg['Subject'] = Header() self.msg.attach(MIMEText('这是接口自动化报告邮件,如果想查看详情请查收附件', 'plain', 'utf-8')) def find_file(self): #获取当前路径 current_path = os.path.dirname(os.path.abspath(__file__)) #获取报告的存放路径 filePath = os.path.dirname(current_path) + "/" + 'report' #获取filepath路径下全部文件名称的列表 fileList = os.listdir(filePath) fileDict = {} fileTime = [] for iName in fileList: #拼接文件路径和i-文件名 filename = filePath + "/" + iName #获取文件的修改时间 iTime = os.path.getmtime(filename) #将文件的修改时间追加到时间列表中 fileTime.append(iTime) #将文件名iname作为字典的value,文件的修改时间iTime作为字典的key存入 fileDict[iTime] = iName sendfilekey = max(fileTime) sendfile = fileDict[sendfilekey] sendfile = filePath + "/" + sendfile return sendfile #发送邮件 def send_mail(self): self.config_file() try: # s = smtplib.SMTP() # s.connect(self.mail_host,25) s = smtplib.SMTP_SSL(self.mail_host, 465) s.ehlo() s.login(self.mail_user, self.mail_pass) s.sendmail(self.sender, self.receivers, self.msg.as_string()) s.close() print("邮件发送成功") except smtplib.SMTPException as msg: print("Error:无法发送邮件")
# coding=utf-8 import unittest import HTMLTestRunner import time from common import readconfig #测试api版本号 rt = readconfig.ReadConfig() prefix = rt.get_prefix() api_v = prefix.replace('/', '') # 相对路径 test_dir = './test_case' test_dir1 = './report' discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py') # 定义带有当前测试时间的报告 now = time.strftime("%Y-%m-%d %H_%M_%S") filename = test_dir1 + '/' + now + 'result.html' # 二进制打开,准备写入文件 fp = open(filename, 'wb') # 定义测试报告 runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'API: %s 接口自动化测试报告' % api_v, description=u'用例执行情况') runner.run(discover)