示例#1
0
    def test_recharge(self, case):
        # 第一步:入参和用例数据
        url = case.url + case.interface
        # 获取充值之前的余额
        if case.check_sql:
            start_money = self.db.find_one(case.check_sql)[0]
            print("充值之前用户的余额是:{}".format(start_money))

        # 第二步:发送接口请求
        res = self.http.request(case.method, url, data=eval(case.data)).json()
        # 第三步:校验结果
        try:
            self.assertEqual(str(case.excepted_code), res["code"])
            # 获取充值之后的余额
            if case.check_sql:
                end_money = self.db.find_one(case.check_sql)[0]
                print("充值之后用户的余额是:{}".format(end_money))
                self.assertEqual(float(eval(case.data)["amount"]), float(end_money-start_money))
        except AssertionError as e:
            # 用例执行未通过
            self.excel.write_data(case.case_id+1, 10, "fail")
            logger.info("测试数据为:{}".format(case.data))
            logger.info("期望结果是:{}".format(case.excepted_code))
            logger.info("实际结果是:{}".format(res))
            logger.exception(e)
            raise e
        else:
            self.excel.write_data(case.case_id + 1, 10, "pass")
            logger.info("测试数据为:{}".format(case.data))
            logger.info("期望结果是:{}".format(case.excepted_code))
            logger.info("实际结果是:{}".format(res))
示例#2
0
    def test_api(self, args):

        global COOKIES  #声明全局变量

        logger.info('正在执行第{0}条用例'.format(args['case_id']))
        logger.info('测试参数:{0}'.format(args))
        url = uri + args['apiName']
        #发起HTTP请求
        res = HttpRequests().http_request(url, args['method'],
                                          eval(args['param']), COOKIES)
        logger.info('返回结果:{0}'.format(res.json()))
        logger.info(type(args['case_id']))
        logger.info(COOKIES)
        #每一个登录请求之后都会产生一个cookies
        if res.cookies != {}:
            COOKIES = res.cookies  #如果cookies不为空,就对全局变量进行修改

        #断言,比对结果
        try:
            self.assertEqual(eval(res.json()['code']), args['expected'])
            test_result = 'pass'
        except Exception as e:
            logger.exception('断言出错啦,期望结果为:{0},实际结果为:{1}'.format(
                args['expected'],
                res.json()['code']))
            test_result = 'fail'
            raise e
        finally:
            excel_obj.write_back(args['case_id'] + 1, 8, res.text)
            excel_obj.write_back(args['case_id'] + 1, 9, test_result)
示例#3
0
class TestAdd(unittest.TestCase):
    """加标接口"""
    data_file_path = os.path.join(DATA_DIR, "case_data.xlsx")
    excel = ReadExcel(data_file_path, 'add')
    cases = excel.read_data_obj()
    http = HTTPSession()
    db = ReadMysql(my_conf.get('mysql', 'host'), my_conf.get('mysql', 'user'),
                   my_conf.get('mysql', 'password'),
                   my_conf.getint('mysql', 'port'),
                   my_conf.get('mysql', 'database'))

    @classmethod
    def setUpClass(cls):
        logger.debug("-------开始加标接口测试{}-------")

    @classmethod
    def tearDownClass(cls):
        logger.debug("-------结束加标接口测试{}-------")

    @data(*cases)
    def test_add(self, case):
        # 第一步:入参和用例数据
        url = my_conf.get('url', 'url') + case.url + case.interface
        case.data = data_replace(case.data)
        if "*memberId*" in case.data:
            max_id = self.db.find_one("select max(id) from member")[0]
            memberId = max_id + 1
            case.data = case.data.replace("*memberId*", str(memberId))

        # 判断是否需要sql校验
        if case.check_sql:
            case.check_sql = data_replace(case.check_sql)
            # 获取当前用户加标签的数量
            start_count = self.db.find_count(case.check_sql)

        # 第二步:发送接口请求
        res = self.http.request(case.method, url, data=eval(case.data)).json()
        print(res)
        res_code = res['code']
        # 第三步:校验结果
        try:
            self.assertEqual(str(case.excepted), res_code)
            if case.check_sql:
                case.check_sql = data_replace(case.check_sql)
                # 获取当前用户加标签的数量
                end_count = self.db.find_count(case.check_sql)
                self.assertEqual(1, end_count - start_count)
        except AssertionError as e:
            # 用例执行未通过
            self.excel.write_data(case.case_id + 1, 8, "fail")
            logger.info("测试数据为:{}".format(case.data))
            logger.info("期望结果是:{}".format(case.excepted_code))
            logger.info("实际结果是:{}".format(res))
            logger.exception(e)
            raise e
        else:
            self.excel.write_data(case.case_id + 1, 8, "pass")
            logger.info("测试数据为:{}".format(case.data))
            logger.info("期望结果是:{}".format(case.excepted))
            logger.info("实际结果是:{}".format(res))
示例#4
0
    def send_mail(file, file_new):
        f = open(file_new, 'rb')
        # 读取测试报告正文
        mail_body = f.read()
        f.close()
        smtpserver = 'smtp.qq.com'  # 发送邮箱服务器
        # 发送邮箱用户/密码(登录邮箱操作)
        username = '******'
        passwd = 'passwd'
        sender = '*****@*****.**'  # 发送邮箱
        receiver = ['*****@*****.**', '*****@*****.**']  # 接收邮箱
        logger.info(("[{}]Receiving mailbox:{}".format(os.path.basename(__file__), receiver)))
        tname = time.strftime('%Y-%m-%d %H-%M-%S', time.localtime())
        header = u'%s 接口自动化测试报告 ' % tname

        # 只发正文,不发附件
        subject = '自动化测试报告'  # 发送主题
        msg = MIMEText(mail_body, 'html', 'utf-8')
        msg['Subject'] = Header(subject, 'utf-8')
        msg['Header'] = header
        msg['From'] = sender
        msg['To'] = ",".join(receiver)

        # 连接发送邮件
        smtp = smtplib.SMTP()
        smtp.connect(smtpserver)
        smtp.login(username, passwd)  # 登录邮箱
        smtp.sendmail(sender, receiver, msg.as_string())  # 发送者和接收者
        smtp.quit()
示例#5
0
 def login(self, username, password, verifycode=''):
     logger.info("[{}]login用户登陆信息:{}, {}, {}".format(
         os.path.basename(__file__), username, password, verifycode))
     self.input_username(username)
     self.input_password(password)
     self.input_verifycode(verifycode)
     self.click_loginbtn()
示例#6
0
    def test_demo_001(self):
        """新用户注册"""
        logger.info('*===============用例{}\{}开始执行===============*'.format(
            __name__,
            sys._getframe().f_code.co_name))

        sql = "delete from user_info where phone='18637607203';"
        sql1 = "delete from category_tree where media_name = 'gaozuxin'"
        flag = mysql.update(sql)
        flag2 = mysql.update(sql1)
        self.assertEqual(1, flag, msg="用户删除失败")
        self.assertEqual(1, flag2, msg="用户删除失败")
        one_browser_window()
        self.loginpage.open_regist()
        self.loginpage.regist('gaozuxin', 'gzx123456', '18637607203', '9274',
                              'A1b8S')
        self.loginpage.take_screenshot()
        islogin = self.indexpage.get_loginuser()
        try:
            self.assertEqual('gaozuxin', islogin, msg="注册并登录失败")
        except:
            data = {"subject": '[自动创建]新用户注册并登录异常', "description": ''}
            link_redmine(self.redmine_user, self.redmine_pwd, data)
            self.assertEqual('gaozuxin', islogin, msg="注册并登录失败")
        self.indexpage.click_exit_userbtn()
        logger.info('*===============用例{}\{}执行结束===============*'.format(
            __name__,
            sys._getframe().f_code.co_name))
示例#7
0
    def test005_task(self):
        """微博采集_微博号采集"""
        logger.info('*======================用例' +
                    sys._getframe().f_code.co_name +
                    '开始执行======================*')
        one_browser_window()
        sql1 = "delete from task_info where uid = 163 and task_name = '微博采集_微博号_大数据';"
        flag1 = mysql.update(sql1)
        if flag1 == 1:
            logger.info('微博采集微博号任务删除成功')
        else:
            logger.error('微博采集微博号任务删除失败')
        self.loginpage.open_login()
        self.loginpage.login('18201112814', 'gzx123456', 'A1b8S')
        self.loginpage.take_screenshot()
        self.loginpage.find_element(Taskherf_loc).click()
        self.taskpage.add_task()
        time.sleep(2)
        handles = driver.window_handles
        driver.switch_to.window(handles[-1])

        taskname = '微博采集_微博号_大数据'
        taskcategory = 'category2'
        tasktype = '调度任务'
        cron = '*/1 * * * *'
        timebreak_loc = '30'
        isagent = '否'
        self.addtask.collect_init(taskname, taskcategory, tasktype, cron,
                                  timebreak_loc, isagent)
        wbkeyword = '大数据'
        self.addtask.new_weibo_collection(wbkeyword)
        time.sleep(2)
        self.addtask.click_savecnfbtn1()
        self.addtask.click_confirmbtn()
        self.addrule.take_screenshot()
        time.sleep(5)
        self.addtask.click_effectivenowbtn1()
        self.loginpage.take_screenshot()
        driver.switch_to.window(handles[0])
        sql3 = "select task_id from task_info where uid = 163 and  task_name = '微博采集_微博号_大数据';"
        task_id1 = mysql.select_one(sql3)
        time.sleep(120)
        self.loginpage.find_element(Dataherf_loc).click()
        task_id2 = self.datapage.get_first_taskid()
        self.loginpage.take_screenshot()
        if str(task_id1[0]) == str(task_id2):
            self.datapage.click_see_details()
            tasks = self.datapage.get_first_tasks()
            logger.info("任务抓取条数{}".format(tasks))
            if str(tasks) != '0':
                logger.info("任务数据抓取正常")
            else:
                logger.error("任务数据抓取异常")
        else:
            logger.error("任务id获取异常")
        logger.info('*======================用例' +
                    sys._getframe().f_code.co_name +
                    '执行结束======================*')
示例#8
0
 def setUpClass(cls):
     logger.info(
         "****************************************start****************************************"
     )
     cls.loginpage = LoginPage(driver)
     cls.indexpage = IndexPage(driver)
     cls.taskpage = TaskIndexPage(driver)
     cls.addtask = TaskAddPage(driver)
     cls.datapage = DataPage(driver)
示例#9
0
 def setUpClass(cls):
     logger.info(
         "************************************{}start*************************************"
         .format(__name__))
     cls.loginpage = LoginPage(driver)
     cls.indexpage = IndexPage(driver)
     cls.redmine_user = '******'
     cls.redmine_pwd = 'jiuqi@310235'
     warnings.simplefilter("ignore", ResourceWarning)
示例#10
0
 def take_screenshot(self):
     rq = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime())
     try:
         self._driver.get_screenshot_as_file(
             os.path.dirname(os.path.dirname(__file__)) +
             '\screenshots\{}.png'.format(rq))
         logger.info("[{}]已截屏并保存{}.png!".format(os.path.basename(__file__),
                                                rq))
     except Exception as e:
         logger.error("[{}]无法截屏!{}".format(os.path.basename(__file__), e))
示例#11
0
 def select_element(self, element_xpath, select_text):
     select1 = self.find_element(element_xpath)
     try:
         Select(select1).select_by_visible_text(select_text)
         logger.info("[{}]选择的元素是:{}".format(os.path.basename(__file__),
                                            select_text))
     except (NoSuchElementException, TimeoutException) as e:
         logger.error("[{}]无法选择该元素{}".format(os.path.basename(__file__), e))
         raise NoSuchElementException(
             msg='[{}]无法选择该元素{}'.format(os.path.basename(__file__), e))
示例#12
0
    def get_result(self, count_num):
        break_flag = False
        n = count_num // 10 + 1
        m = count_num % 10 + 1
        for i in range(1, n):
            for index in range(1, 11):
                if i == n - 1 and index == m:
                    break_flag = True
                    break
                rule_name_loc = '//*[@id="contentheight"]/div/table/tbody/tr[{}]/td[2]/span'.format(
                    index)
                testbtn_loc = '//*[@id="contentheight"]/div/table/tbody/tr[{}]/td[10]/a[4]'.format(
                    index)
                type_loc = '//*[@id="contentheight"]/div/table/tbody/tr[{}]/td[3]/span'.format(
                    index)
                rule_name = self.find_element(rule_name_loc).text
                type = self.find_element(type_loc).text
                time.sleep(1)
                self.click_element(testbtn_loc)
                time.sleep(20)
                if type == '列表页':
                    result = self.find_element(self.result_loc).text

                    if result == '共0条数据':
                        errinfo = self.find_element(self.errinfo_loc).text
                        logger.error("规则名称:(第{}页第{}个){},{},#{}".format(
                            i, index, rule_name, result, errinfo))
                    else:
                        logger.info("规则名称:(第{}页第{}个){},{}".format(
                            i, index, rule_name, result))
                    time.sleep(2)
                elif type == '正文页':
                    try:
                        title_text = self.find_element(
                            self.title_text_loc).text
                        content_text = self.find_element(
                            self.content_text_loc).text
                        time.sleep(2)
                        logger.info(
                            "规则名称:(第{}页第{}个){},title:{};content:{}".format(
                                i, index, rule_name, title_text, content_text))
                    except:
                        logger.error("规则名称:(第{}页第{}个)页面数据获取有误".format(
                            i, index, rule_name))
                else:
                    logger.error('所属类型有误')

                self.take_screenshot()
                self.click_element(self.closebtn_loc)
            if break_flag:
                break
            time.sleep(1)
            # self..click_element(next_page_loc)
            self.next_page(i + 1)
示例#13
0
 def regist(self, regist_username, regist_password, regist_mobile,
            regist_code, regist_verifycode):
     logger.info("[{}]regist用户注册信息:{}, {}, {}, {}, {}".format(
         os.path.basename(__file__), regist_username, regist_password,
         regist_mobile, regist_code, regist_verifycode))
     self.input_regist_username(regist_username)
     self.input_regist_password(regist_password)
     self.input_regist_mobile(regist_mobile)
     self.input_regist_code(regist_code)
     self.input_regist_verifycode(regist_verifycode)
     self.click_registbtn()
示例#14
0
 def setUpClass(cls):
     logger.info(
         "****************************************start****************************************"
     )
     cls.loginpage = LoginPage(driver)
     cls.indexpage = IndexPage(driver)
     cls.rulepage = RuleIndexPage(driver)
     cls.addrule = RuleAddPage(driver)
     cls.extensionpage = ExtensionPage(driver)
     cls.taskpage = TaskIndexPage(driver)
     cls.addtask = TaskAddPage(driver)
     cls.datapage = DataPage(driver)
示例#15
0
    def test007_rule(self):
        """"""
        logger.info('*======================用例' +
                    sys._getframe().f_code.co_name +
                    '开始执行======================*')
        one_browser_window()
        self.loginpage.open_login()
        self.loginpage.login('18201112814', 'gzx123456', 'A1b8S')
        self.loginpage.find_element(Taskherf_loc).click()

        logger.info('*======================用例' +
                    sys._getframe().f_code.co_name +
                    '执行结束======================*')
示例#16
0
 def test_003(self):
     """采云用户名输入框测试"""
     logger.info('*****************************用例' +
                 sys._getframe().f_code.co_name +
                 '执行开始****************************')
     self.loginpage.input_username('1111')
     time.sleep(1)
     self.loginpage.input_username('2222')
     time.sleep(1)
     self.loginpage.input_username('3333')
     time.sleep(1)
     logger.info('*****************************用例' +
                 sys._getframe().f_code.co_name +
                 '执行结束****************************')
示例#17
0
 def test_regist_001(self):
     """新用户注册"""
     logger.info('*======================用例' +
                 sys._getframe().f_code.co_name +
                 '开始执行======================*')
     one_browser_window()
     sql = "delete from user_info where phone='18637607203';"
     flag = mysql.update(sql)
     if flag:
         logger.info("用户删除成功")
     else:
         logger.error("用户删除失败")
     self.loginpage.open_regist()
     self.loginpage.regist('gaozuxin', 'gzx123456', '18637607203', '9274',
                           'A1b8S')
     self.loginpage.take_screenshot()
     islogin = self.indexpage.get_loginuser()
     if islogin == 'gaozuxin':
         logger.info('注册并登录成功')
     else:
         logger.error('注册并登录失败')
         time.sleep(2)
     self.indexpage.click_exit_userbtn()
     time.sleep(3)
     logger.info('*======================用例' +
                 sys._getframe().f_code.co_name +
                 '执行结束======================*')
示例#18
0
 def test006_rule(self):
     """规则模板验证"""
     logger.info('*======================用例' +
                 sys._getframe().f_code.co_name +
                 '开始执行======================*')
     one_browser_window()
     self.indexpage.click_exit_userbtn()
     self.loginpage.open_login()
     self.loginpage.login('admin', 'caiyun123', 'A1b8S')
     self.loginpage.find_element(Ruleherf_loc).click()
     self.rulepage.get_result(count_num=72)  # 规则条数
     logger.info('*======================用例' +
                 sys._getframe().f_code.co_name +
                 '执行结束======================*')
示例#19
0
    def new_report(file, testreport):
        # 方式1:
        # 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

        # 方式2:
        dirs = os.listdir(testreport)
        dirs.sort()
        newreportname = dirs[-1]
        logger.info("[{}]The new report name:{}".format(os.path.basename(__file__), newreportname))
        file_new = os.path.join(testreport, newreportname)
        return file_new
示例#20
0
 def setUpClass(cls):
     logger.info(
         "************************************{}start*************************************"
         .format(__name__))
     cls.loginpage = LoginPage(driver)
     cls.indexpage = IndexPage(driver)
     cls.rulepage = RuleIndexPage(driver)
     cls.addrule = RuleAddPage(driver)
     cls.extensionpage = ExtensionPage(driver)
     cls.taskpage = TaskIndexPage(driver)
     cls.addtask = TaskAddPage(driver)
     cls.datapage = DataPage(driver)
     cls.redmine_user = '******'
     cls.redmine_pwd = ''
     warnings.simplefilter("ignore", ResourceWarning)
示例#21
0
 def test_demo_001(self):
     """用户登陆验证"""
     logger.info('*===============用例{}\{}开始执行===============*'.format(
         __name__,
         sys._getframe().f_code.co_name))
     one_browser_window()
     self.loginpage.open_regist()
     self.loginpage.regist('gaogao', 'gzx123456', '18201112814', '9274',
                           'A1b8S')
     show_info_r = self.loginpage.find_element_xpath(
         '//*[@id="search-form"]/div[2]/input').text
     self.assertEqual('用户名已存在,请更换', show_info_r, msg="注册用户,用户名错误提示信息有误")
     time.sleep(3)
     logger.info('*===============用例{}\{}执行结束===============*'.format(
         __name__,
         sys._getframe().f_code.co_name))
示例#22
0
 def open_browser(self):
     config = configparser.ConfigParser()
     dir = os.path.abspath('.').split('src')[0]
     config.read(dir + "/config/config.ini")
     browser = config.get("browserType", "browserName")
     logger.info("You had select %s browser." % browser)
     url = config.get("testServer", "URL")
     if browser == "Firefox":
         self.driver = webdriver.Firefox()
     elif browser == "Chrome":
         self.driver = webdriver.Chrome()
     elif browser == "IE":
         self.driver = webdriver.Ie()
     self.driver.set_window_size(1920, 1080)  # 分辨率
     # self.driver.maximize_window()#最大化
     self.driver.get(url)
     return self.driver
示例#23
0
 def http_request(self, url, method, args):
     if method.lower() == 'get':
         try:
             logger.info('发起get请求')
             result = requests.get(url, args)
         except Exception as e:
             logger.exception('发起get请求出错啦,错误为:%s', e)
             raise e
     elif method.lower() == 'post':
         try:
             logger.info('发起post请求')
             result = requests.post(url, args)
         except Exception as e:
             logger.exception('发起post请求出错啦,错误为:%s', e)
             raise e
     else:
         logger.exception('请求类型错误,发起请求失败')
     return result
示例#24
0
 def test_002(self):
     """错误登录信息成功验证"""
     logger.info('*****************************用例' +
                 sys._getframe().f_code.co_name +
                 '执行开始****************************')
     logger.info("用户登陆信息:18201112814, 123456, abcd")
     show_div = self.loginpage.login('18201112814', '123456', 'abcd')
     logger.info("登录信息提示:%s" % show_div)
     self.assertEqual('验证码不正确!', show_div, msg="提示信息错误")
     logger.info('*****************************用例' +
                 sys._getframe().f_code.co_name +
                 '执行结束****************************')
示例#25
0
 def test_demo_004(self):
     """任务界面【测试/修改/删除】按钮有效性验证"""
     logger.info('*======================用例' +
                 sys._getframe().f_code.co_name +
                 '开始执行======================*')
     sql1 = "delete from task_info where uid = 163 and (task_name = '脚本使用任务_常规采集' or task_name = '脚本使用任务_常规采集_copy');"
     sql2 = "INSERT INTO `task_info` (`uid`, `task_name`, `task_config`, `category`, `lang`, `period_cron`, `dt`, `taskstatus`, `notifycls`, `time_break`, `cookie`, `is_agent`, `agent_type`, `agent_value`, `spider_type`, `url`, `spider_status`, `create_uid`, `update_uid`, `trigger_condition`, `warn_grade`, `warn_status`, `mid`, `modelkeywords`, `task_type`) VALUES ('163', '脚本使用任务_常规采集', '{\"max_step\":2,\"spider_type\":1,\"keywords\":[],\"recursion_count\":1,\"recursion_field\":\"\",\"config\":[{\"step_id\":\"data1\",\"step_name\":\"data1\",\"data_name\":\"data1\",\"url\":\"http://in.nen.com.cn/ssjj/index.shtml\",\"rule_id\":\"920\",\"rule_mark\":\"\",\"time_out\":\"5000\",\"rule_type\":1,\"detail_rule_type\":2,\"delete\":false,\"wait\":0,\"filter\":\"url\",\"filter_con\":1,\"filter_type\":false,\"step_col\":\"url\",\"page_num\":0,\"check\":true,\"rend\":true,\"rendrule\":false},{\"step_id\":\"data2\",\"step_name\":\"data2\",\"data_name\":\"data2\",\"url\":\"url\",\"rule_id\":\"919\",\"rule_mark\":\"\",\"time_out\":\"5000\",\"rule_type\":2,\"detail_rule_type\":2,\"delete\":false,\"wait\":0,\"step_col\":\"\",\"page_num\":0,\"filter\":\"\",\"filter_con\":1,\"filter_type\":false,\"check\":true,\"sample_url\":\"http://in.nen.com.cn/system/2018/03/23/020430991.shtml\",\"rend\":true,\"rendrule\":false,\"moving\":false}],\"loginform\":{\"formtype\":\"FORM\",\"submittype\":\"POST\",\"url\":\"http://\",\"body\":true,\"header\":true,\"bodys\":[],\"headers\":[]},\"notify\":{\"notify\":false,\"notify_url\":\"\",\"cls_type\":\"\",\"cls_field\":\"\",\"tag_type\":\"0\",\"tag\":\"\",\"data_map\":[{\"data1._SEED_URL\":\"_SEED_URL\"},{\"data1.title\":\"title\"},{\"data1.url\":\"url\"},{\"data2._SEED_URL\":\"_SEED_URL\"},{\"data2.title\":\"title\"},{\"data2.dt\":\"dt\"},{\"data2.content\":\"content\"}],\"data_map_constant\":[],\"cls_map\":[]}}', '1315', 'zh-CN', '*/1 * * * *', '2019-01-25 16:27:13', 'OFF', '', '30', '', '0', '2', '', '1', 'http://in.nen.com.cn/ssjj/index.shtml', NULL, '163', '163', NULL, NULL, NULL, NULL, NULL, '1');"
     flag1 = mysql.update(sql1)  # 先删除历史任务
     self.assertEqual(1, flag1, msg="删除历史任务失败")
     time.sleep(2)
     flag2 = mysql.update(sql2)  # 插入新任务
     self.assertEqual(1, flag2, msg="插入新任务失败")
     one_browser_window()
     self.loginpage.open_login()
     self.loginpage.login('18201112814', 'gzx123456', 'A1b8S')
     self.loginpage.take_screenshot()
     # self.loginpage.find_element(Taskherf_loc).click()
     self.taskpage.open()
     task_name1 = self.taskpage.get_first_taskname()
     self.assertEqual("脚本使用任务_常规采集", str(task_name1), msg="任务名称获取有误")
     self.taskpage.click_first_testbtn()
     time.sleep(20)
     result_text = self.taskpage.get_firstresult()
     logger.info("测试任务抓取条数:{}".format(result_text))
     self.taskpage.take_screenshot()
     self.assertEqual("共30条数据", str(result_text), msg="测试按钮抓取数据异常")
     self.taskpage.click_first_close()
     time.sleep(1)
     self.taskpage.click_first_modifybtn()
     time.sleep(2)
     handles = driver.window_handles
     driver.switch_to.window(handles[-1])
     self.addtask.input_cron('59 23 31 12 *')
     time.sleep(1)
     self.addtask.click_savecnfbtn()
     time.sleep(1)
     self.addtask.click_confirmbtn()
     time.sleep(2)
     self.addtask.click_backlistbtn()
     time.sleep(1)
     schedul = self.taskpage.get_first_schedul()
     logger.info("获取任务的调度文本:{}".format(schedul))
     self.assertEqual("每年12月31日23时59分", str(schedul), msg="修改按钮校验失败")
     self.taskpage.click_first_deletebtn()
     time.sleep(1)
     self.taskpage.click_confirmbtn()
     time.sleep(2)
     sql3 = "select * from task_info where uid = 163 and task_name = '脚本使用任务_常规采集_copy' and taskstatus != 'DELETE' ;"
     task_name = mysql.select_all(sql3)  # 查询任务是否删除
     self.assertEqual('()', str(task_name), msg="删除按钮校验失败")
     logger.info('*======================用例' +
                 sys._getframe().f_code.co_name +
                 '执行结束======================*')
示例#26
0
 def test_login_004(self):
     """图片验证码注册校验"""
     logger.info('*======================用例' +
                 sys._getframe().f_code.co_name +
                 '开始执行======================*')
     one_browser_window()
     self.loginpage.open_login()
     vrfcode_data = [
         {
             'code': '',
             'show_info': '此处不能为空'
         },
         {
             'code': 'ab12',
             'show_info': ''
         },
     ]
     for index in range(len(vrfcode_data)):
         self.loginpage.input_verifycode(vrfcode_data[index]['code'])
         self.loginpage.switch_verifyimg()
         time.sleep(1)
         show_info_l = self.loginpage.showinfo_verifycode()
         logger.info("[{}]'图片验证码':{};期望:{};实际:{}".format(
             os.path.basename(__file__), vrfcode_data[index]['code'],
             vrfcode_data[index]['show_info'], show_info_l))
         self.assertIn(vrfcode_data[index]['show_info'],
                       show_info_l,
                       msg="登录用户,图片验证码提示信息有误")
         time.sleep(1)
     time.sleep(3)
     logger.info('*======================用例' +
                 sys._getframe().f_code.co_name +
                 '执行结束======================*')
示例#27
0
 def test_regist_003(self):
     """密码注册验证"""
     logger.info('*======================用例' +
                 sys._getframe().f_code.co_name +
                 '开始执行======================*')
     one_browser_window()
     self.loginpage.open_regist()
     pwd_data = [{
         'pwd': '',
         'show_info': '此处不能为空'
     }, {
         'pwd': 'a2345q',
         'show_info': ''
     }, {
         'pwd': 'qwerty',
         'show_info': '密码中必须包含6-16位字母、数字组合'
     }, {
         'pwd': '12345q',
         'show_info': ''
     }, {
         'pwd': '1234q',
         'show_info': '密码中必须包含6-16位字母、数字组合'
     }, {
         'pwd': 'qwert1',
         'show_info': ''
     }, {
         'pwd': '1234567890123456',
         'show_info': '密码中必须包含6-16位字母、数字组合'
     }, {
         'pwd': '123456789012345q',
         'show_info': ''
     }, {
         'pwd': '123456789012345qq',
         'show_info': '密码中必须包含6-16位字母、数字组合'
     }, {
         'pwd': '123456ab9012345q',
         'show_info': ''
     }, {
         'pwd': '__11__',
         'show_info': '密码中必须包含6-16位字母、数字组合'
     }]
     for index in range(len(pwd_data)):
         self.loginpage.input_regist_password(pwd_data[index]['pwd'])
         self.loginpage.switch_regist_img()
         time.sleep(1)
         show_info_l = self.loginpage.showinfo_registpwd()
         logger.info("[{}]密码:{};期望:{};实际:{}".format(
             os.path.basename(__file__), pwd_data[index]['pwd'],
             pwd_data[index]['show_info'], show_info_l))
         self.assertIn(pwd_data[index]['show_info'],
                       show_info_l,
                       msg="注册用户,密码提示信息有误")
         time.sleep(3)
     logger.info('*======================用例' +
                 sys._getframe().f_code.co_name +
                 '执行结束======================*')
示例#28
0
 def test_001(self):
     """错误登录信息失败验证"""
     logger.info('*****************************用例' +
                 sys._getframe().f_code.co_name +
                 '执行开始****************************')
     show_div = self.loginpage.login('18201112814', 'jiayou101900', 'abcd')
     logger.info("登录信息提示:%s" % show_div)
     self.assertEqual('登录成功', show_div, msg="用户登录失败")
     logger.info('*****************************用例' +
                 sys._getframe().f_code.co_name +
                 '执行结束****************************')
示例#29
0
    def test_regist_002(self):
        """用户名注册验证"""
        logger.info('*======================用例' +
                    sys._getframe().f_code.co_name +
                    '开始执行======================*')
        one_browser_window()
        self.loginpage.open_regist()
        usr_data = [{
            'usr': '',
            'show_info': '此处不能为空'
        }, {
            'usr': '******',
            'show_info': ''
        }, {
            'usr': '******',
            'show_info': '用户名只能包含2位以上20位以下数字、英文、中文、下划线'
        }, {
            'usr': '******',
            'show_info': ''
        }, {
            'usr': '******',
            'show_info': '用户名只能包含2位以上20位以下数字、英文、中文、下划线'
        }, {
            'usr': '******',
            'show_info': ''
        }, {
            'usr': '******',
            'show_info': '用户名只能包含2位以上20位以下数字、英文、中文、下划线'
        }, {
            'usr': '******',
            'show_info': ''
        }]
        for index in range(len(usr_data)):
            self.loginpage.input_regist_username(usr_data[index]['usr'])
            self.loginpage.switch_regist_img()
            time.sleep(1)
            show_info_l = self.loginpage.showinfo_registuser()
            logger.info("[{}]用户名:{};期望:{};实际:{}".format(
                os.path.basename(__file__), usr_data[index]['usr'],
                usr_data[index]['show_info'], show_info_l))
            self.assertIn(usr_data[index]['show_info'],
                          show_info_l,
                          msg="注册用户,用户名提示信息有误")
            time.sleep(1)

        self.loginpage.regist('gaozuxin', 'gzx123456', '13683066505', '9274',
                              'A1b8S')
        # show_info_r = self.loginpage.showinfo_regist()
        # self.assertEqual('用户名已存在,请更换', show_info_r, msg="注册用户,用户名错误提示信息有误")
        time.sleep(3)
        logger.info('*======================用例' +
                    sys._getframe().f_code.co_name +
                    '执行结束======================*')
示例#30
0
 def test_004(self):
     """采云用户成功登录验证"""
     logger.info('*****************************用例' +
                 sys._getframe().f_code.co_name +
                 '执行开始****************************')
     data = [('admin', 'caiyun123', 'A1b8S', '登录成功!')]
     for index in range(len(data)):
         logger.info("用户登陆信息:%s, %s, %s, 期望提示信息:%s" %
                     (data[index][0], data[index][1], data[index][2],
                      data[index][3]))
         res = self.loginpage.login(data[index][0], data[index][1],
                                    data[index][2])
         self.loginpage.take_screenshot()
         logger.info("用户登录实际提示信息:%s" % res)
         # self.assertEqual(data[index][3], res, msg="提示信息错误")
         time.sleep(3)
     logger.info('*****************************用例' +
                 sys._getframe().f_code.co_name +
                 '执行结束****************************')