示例#1
0
 def __init__(self):
     self.sqldata = lhlSql()
     self.portalsql = portalSql()
     self.postheader = {}
     self.postheader['Authorization'] = userLogin.userlogin().accountLogin()
     self.postheader['Content-Type'] = "application/json"
     self.url = config.userurl + "/department"
     pass
示例#2
0
 def __init__(self):
     self.sqldata = lhlSql()
     self.portalsql = portalSql()
     self.session = userLogin.userlogin()
     self.postheader = {}
     self.postheader['Content-Type'] = "application/json"
     self.postheader['Authorization'] = self.session.accountLogin()
     self.url = config.contracturl
     pass
示例#3
0
 def __init__(self):
     self.sqldata = lhlSql()
     self.portalsql = portalSql()
     self.session = userLogin.userlogin()
     self.postheader = {}
     self.getheader = {}
     self.postheader['Content-Type'] = "application/json"
     self.getheader['Content-Type'] = "application/x-www-form-urlencoded;charset=UTF-8"
     self.postheader['Requested-With'] = "XMLHttpRequest"
     self.postheader['Authorization'] = self.session.accountLogin()
     self.url = config.orgurl + "/org"
     pass
示例#4
0
#!/usr/bin/env python

import userRegist, userLogin, findPasswd

#实例化注册模块
a = userRegist.userregist()
#合法账号手机号注册
a.phoneregist()
#非法账号手机号注册
a.illegrateAccountRegist()

#实例化用户登录模块
b = userLogin.userlogin()
#正确账号密码登录
b.accountLogin()
#正确账号错误密码登录
b.wpasslogin()
示例#5
0
def test(name):
    global author
    account = name
    passwd = "123456aA"
    ug = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
    url = "http://24mail.chacuo.net/zhtw"
    header = {}
    header['User-Agent'] = ug
    #请求临时邮箱,获取当前邮箱地址,和cookie
    r = requests.get(url, headers=header)
    #    print(r.text)
    #    print(r.headers['Set-Cookie'])
    l1 = re.compile(r'sid=(.*)$')
    l2 = l1.findall(r.headers['Set-Cookie'])
    token = l2[0]
    #    print(token)
    html = BeautifulSoup(r.content, features='lxml')
    #    print(html)
    tmp = str(html.input['value'])
    email = tmp + "@chacuo.net"
    print(email)
    eurl = "http://11.2.77.3/portal-test/user/account/system/add"
    addheader = {}
    addheader['Content-Type'] = "application/json"
    addheader['Authorization'] = author
    param = {
        "account": account,
        "departmentId": 17,
        "email": email,
        "name": "绝世美女Carry全场" + str(account),
        "roleId": 10
    }
    #添加系统用户成功后,重置密码
    res = requests.post(eurl, headers=addheader, data=json.dumps(param))
    try:
        print(res.json())
        #        print(res.json()['code'])
        #        con = pymysql.connect("192.168.15.21","root","Test~107443","j_portal")
        #        cursor = con.cursor()
        #        sql = "select id from user where account='{0}'".format(account)
        #        cursor.execute(sql)
        #        tmpid = cursor.fetchone()
        #        print(tmpid[0])
        uu = "http://11.2.77.3/portal-test/user/account/system/reset"
        pp = {}


#        pp['id'] = tmpid[0]
#        uu2 = requests.post(uu, headers=addheader, params=pp)
#        print('重置密码')
#        print(uu2.text)
    except KeyError:
        print('失败')
        sys.exit()
    #如果邮箱验证码发送成功,获取临时邮箱中的验证码
    if res.json()['code'] == 200:
        time.sleep(5)
        reheader = {}
        reheader['User-Agent'] = ug
        reheader['X-Requested-With'] = "XMLHttpRequest"
        reheader['Cookie'] = "sid=" + token
        regurl = "http://11.2.77.3/portal-test/user/reg/email/add"
        eparam = {}
        eparam['data'] = tmp
        eparam['type'] = "refresh"
        eparam['arg'] = ""
        regheader = {}
        #循环10次,每次间隔10秒,如果仍没有获取就退出
        for i in range(10):
            time.sleep(10)
            eres = requests.post(url, headers=reheader, params=eparam)
            #            print(eres.text)
            if eres.json()['data'][0]['list']:
                mid = eres.json()['data'][0]['list'][0]['MID']
                #                print(mid)
                cparam = {}
                cparam['data'] = tmp
                cparam['type'] = "mailinfo"
                cparam['arg'] = "f=" + str(mid)
                code = requests.post(url, headers=reheader, params=cparam)
                #                print(code.text)
                print(code.json()['data'][0][1][0]['DATA'])
                cc = code.json()['data'][0][1][0]['DATA'][0]
                ehtml = BeautifulSoup(cc, features='lxml')
                #获取到的密码
                ccd = ehtml.find_all('span')[1]
                ccd = ccd.get_text()
                print(ccd)
                print(account)
                mtoken = userLogin.userlogin().accountLogin(account, ccd)
                print(mtoken)
                lasturl = "http://11.2.77.3/portal-test/user/person/update/pwd"
                lastheader = {}
                lastheader['Content-Type'] = "application/json"
                lastheader['Authorization'] = mtoken
                lastdata = {}
                lastdata["password"] = ccd
                lastdata["newPassword"] = passwd
                lastdata["confirmNewPassword"] = passwd
                lastres = requests.post(lasturl,
                                        headers=lastheader,
                                        data=json.dumps(lastdata))
                print(lastres.text)
                print('success')
                break
示例#6
0
    def respondGet(self, result_code, url, header="", param="", upwd=None):
        """
        请求时需要4个参数, 预期的响应code, 完整url, 请求header,请求参数, 测试账号密码
        函数返回一个字典{'body': , 'respondTime':, 'code':}
        """
        #判断是否提供了测试用的用户名和密码,如果没有提供则使用默认账号,如果提供有误则没有身份认证信息
        self.getheader['Authorization'] = self.session
        if upwd:
            try:
                upwd = json.loads(upwd)
                try:
                    testsession = userLogin.userlogin().accountLogin(
                        upwd['username'], upwd['passwd'])
                    self.getheader['Authorization'] = testsession
                except requests.exceptions.ConnectionError:
                    self.getheader['Authorization'] = ""
                except KeyError:
                    self.getheader['Authorization'] = ""
            except json.decoder.JSONDecodeError:
                self.getheader['Authorization'] = ""
        s = requests.session()
        if not self.__analysisUrl(url):
            return None
        try:
            param = json.loads(param)
        except json.decoder.JSONDecodeError:
            param = {}
        if not isinstance(param, dict):
            print('get请求的参数格式有误')
            param = {}
        try:
            res = s.get(url,
                        headers=self.getheader,
                        params=param,
                        timeout=self.timeout)
        except requests.exceptions.ConnectionError:
            print("请求URL无法连接")
            return None
#        print(res.status_code)
#        print(res.url)
#        print(res.text)
#判断是否给了预期的code,如果没有结果为None
        if result_code:
            #如果code为200,判断响应json中的code是否和预期的值相等,如果解析json失败返回Error
            if res.status_code == 200:
                try:
                    if str(res.json()['code']) == str(result_code.strip()):
                        result = 'Success'
                    else:
                        result = 'Faile'
                except json.decoder.JSONDecodeError:
                    result = 'Faile'
                except KeyError:
                    result = 'Faile'
            #如果响应的code不是200
            else:
                #判断预期的code与服务端的响应code是否相等,相等也认定为成功,不相等返回Error
                if str(res.status_code) == str(result_code.strip()):
                    result = 'Success'
                else:
                    result = 'Error'
        else:
            result = "None"

    # print(res.text.encode('utf-8').decode('utf-8'),res.elapsed.total_seconds(),res.status_code)
        rep = {
            'body': res.text,
            'respondTime': res.elapsed.total_seconds(),
            'code': res.status_code,
            'result': result
        }
        return rep
示例#7
0
    def respondPut(self, url, header="", data={}, upwd=None):
        """
        请求时需要3个参数,预期的响应code, 完整url,请求header,请求参数
        函数返回一个字典{'body': , 'respondTime':, 'code':}
        """
        #判断是否提供了测试用的用户名和密码,如果没有提供则使用默认账号,如果提供有误则没有身份认证信息
        self.postheader_json['Authorization'] = self.session
        self.postheader_www['Authorization'] = self.session
        if upwd:
            try:
                upwd = json.loads(upwd)
                try:
                    testsession = userLogin.userlogin().accountLogin(
                        upwd['username'], upwd['passwd'])
                    self.postheader_json['Authorization'] = testsession
                    self.postheader_www['Authorization'] = testsession
                except requests.exceptions.ConnectionError:
                    self.postheader_www['Authorization'] = ""
                    self.postheader_json['Authorization'] = ""
                except KeyError:
                    self.postheader_json['Authorization'] = ""
                    self.postheader_www['Authorization'] = ""
            except json.decoder.JSONDecodeError:
                self.postheader_www['Authorization'] = ""
                self.postheader_json['Authorization'] = ""
        s = requests.session()
        self.pheader['Cookie'] = header
        try:
            res = s.get(url,
                        headers=self.pheader,
                        data=data,
                        timeout=self.timeout)
        except requests.exceptions.MissingSchema:
            print('请求的Url地址有误')
            return None
        except requests.exceptions.ConnectionError:
            print("请求URL无法连接")
            return None

    # print(res.text.encode('utf-8').decode('utf-8'),res.elapsed.total_seconds(),res.status_code)
    #判断是否给了预期的code,如果没有结果为None
        if result_code:
            #如果code为200,判断响应json中的code是否和预期的值相等,如果解析json失败返回Error
            if res.status_code == 200:
                try:
                    if str(res.json()['code']) == str(result_code.strip()):
                        result = 'Success'
                    else:
                        result = 'Faile'
                except json.decoder.JSONDecodeError:
                    result = 'Error'
                except KeyError:
                    result = 'Error'
            #如果响应的code不是200
            else:
                #判断预期的code与服务端的响应code是否相等,相等也认定为成功,不相等返回Error
                if str(res.status_code) == str(result_code.strip()):
                    result = 'Success'
                else:
                    result = 'Error'
        else:
            result = "None"
示例#8
0
    def respondPost(self, result_code, url, header="", data={}, upwd=None):
        """
        请求时需要4个参数,预期的响应code, 完整url,请求header,请求参数
        函数返回一个字典{'body': , 'respondTime':, 'code':}
        """
        #判断是否提供了测试用的用户名和密码,如果没有提供则使用默认账号,如果提供有误则没有身份认证信息
        self.postheader_json['Authorization'] = self.session
        self.postheader_www['Authorization'] = self.session
        if not upwd:
            try:
                upwd = json.loads(upwd)
                try:
                    testsession = userLogin.userlogin().accountLogin(
                        upwd['username'], upwd['passwd'])
                    self.postheader_json['Authorization'] = testsession
                    self.postheader_www['Authorization'] = testsession
                except requests.exceptions.ConnectionError:
                    self.postheader_json['Authorization'] = ""
                    self.postheader_www['Authorization'] = ""
                except KeyError:
                    self.postheader_json['Authorization'] = ""
                    self.postheader_www['Authorization'] = ""
            except json.decoder.JSONDecodeError:
                self.postheader_json['Authorization'] = ""
                self.postheader_www['Authorization'] = ""
        try:
            data = json.loads(data)
        except json.decoder.JSONDecodeError:
            data = {}
        if not isinstance(data, dict):
            print('post请求的数据格式有误')
            param = {}
        s = requests.session()
        if header.strip() == "json":
            try:
                res = s.post(url,
                             headers=self.postheader_json,
                             data=json.dumps(data),
                             timeout=self.timeout)
                print(url, self.postheader_json, data)
            except requests.exceptions.MissingSchema:
                print('请求的Url地址有误')
                return None
            except requests.exceptions.ConnectionError:
                print("请求URL无法连接")
                return None
#            print(res.url)
#            print(data)
            print(res.text, res.elapsed.total_seconds(), res.status_code)
        else:
            try:
                print('nojson')
                res = s.post(url,
                             headers=self.postheader_www,
                             data=data,
                             timeout=self.timeout)
            except requests.exceptions.MissingSchema:
                print('请求的Url地址有误')
                return None
            except requests.exceptions.ConnectionError:
                print("请求URL无法连接")
                return None


#            print(res.url)
#            print(data)
#            print(res.text,res.elapsed.total_seconds(),res.status_code)
#判断是否给了预期的code,如果没有结果为None
        if result_code:
            #如果code为200,判断响应json中的code是否和预期的值相等,如果解析json失败返回Error
            if res.status_code == 200:
                try:
                    if str(res.json()['code']) == str(result_code.strip()):
                        result = 'Success'
                    else:
                        result = 'Faile'
                except json.decoder.JSONDecodeError:
                    result = 'Error'
                except KeyError:
                    result = 'Error'
            #如果响应的code不是200
            else:
                #判断预期的code与服务端的响应code是否相等,相等也认定为成功,不相等返回Error
                if str(res.status_code) == str(result_code.strip()):
                    result = 'Success'
                else:
                    result = 'Error'
        else:
            result = "None"
        rep = {
            'body': res.text,
            'respondTime': res.elapsed.total_seconds(),
            'code': res.status_code,
            'result': result
        }
        return rep