Beispiel #1
0
 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",
     }  # 根据实际内容
Beispiel #2
0
 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)
Beispiel #3
0
 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'])
Beispiel #4
0
 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"
     }
Beispiel #5
0
 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"
     }
Beispiel #6
0
 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"
     }
Beispiel #7
0
 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"
     }
Beispiel #8
0
 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
     }
Beispiel #9
0
 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"
     }
Beispiel #10
0
 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"
     }
Beispiel #11
0
 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"
     }
Beispiel #14
0
 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"
     }
Beispiel #15
0
 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"
     }
Beispiel #16
0
 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"
     }
Beispiel #17
0
 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
Beispiel #19
0
 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))
Beispiel #20
0
 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)
Beispiel #21
0
 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)
Beispiel #22
0
 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)
Beispiel #24
0
 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')
Beispiel #27
0
 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()
Beispiel #28
0
 def setUp(self):
     self.rt = readconfig.ReadConfig()
     API = self.rt.get_api()
     self.get_url = '%s' % API
Beispiel #29
0
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:无法发送邮件")
Beispiel #30
0
# 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)