示例#1
0
def login_test(username, password):
    login_test = Login()
    event_log('case', 'start login')
    login_test.login(username, password)
    login_test.get_url()
    login_test.action_result('login')
    login_test.screenshot('login')
示例#2
0
def app_create_byyaml(app_name):  # 创建应用
    # myapp = 'autobyyaml' + str(random.randint(1, 1000))
    logger.debug('开始创建应用{}'.format(app_name))
    create_app_byyaml = AppCreatePage()
    event_log('case', 'create app by yaml')
    create_app_byyaml.click_element('sidebar_applist_loc')
    create_app_byyaml.Create_App_by_Yml(app_name)
    sleep(2)
    create_app_byyaml.action_result('create app')
    create_app_byyaml.screenshot('create_app_byyaml')
示例#3
0
def app_create_byimage(app_name):
    # myapp = 'autobyimage' + str(random.randint(1, 1000))
    logger.debug('开始创建应用{}'.format(app_name))
    create_app_byimage = AppCreatePage()
    event_log('case', 'create app by image')
    create_app_byimage.click_element('sidebar_applist_loc')
    create_app_byimage.Create_App_throughImage(
        'daocloud.io/daocloud/dao-2048:latest', app_name)
    sleep(2)
    create_app_byimage.action_result('create app')
    create_app_byimage.screenshot('create_app_byimage')
示例#4
0
 def OpenTty(self):
     # self.click_element('appdetail_opentty_loc')
     self.click_element('appdetail_opentty_ensure_loc')
     sleep(4)
     window = self.get_handle()
     if len(window) == 2:
         event_log('success', 'open tty')
         self.switch_win(window[1])
         self.screenshot('appdetail_opentty')
         self.close()
         self.switch_win(window[0])
     else:
         event_log('fail', 'open tty')
         self.screenshot('appdetail_opentty')
     return self.click_element('appdetail_opentty_cancel_loc')
示例#5
0
 def create_app_action_result(self, appname):
     try:
         noty = '//*[@class="header-name"]'
         cmd = 'kubectl get app | grep ' + appname
         appresource = self.get_hostcmd(cmd)
         if appname in appresource:
             sign = True
         else:
             sign = False
         element = self.element_present(noty)
         while element:
             # while sign:  #判断标准应该只有app资源有没有被创建出来,界面只用做截图
             return event_log('success', ' create app')
         return event_log('fail', ' create app')
     except TimeoutException:
         return event_log('fail', ' create app')
示例#6
0
 def ManageLabel(self, mov):  # 编辑标签
     # self.click_element('appdetail_managelabel_loc')
     # sleep(1)
     if mov == 'add':
         print('666')
         self.click_element('appdetail_managelabel_add_deploylabel_loc')
         self.type('appdetail_managelabel_input_deploylabel_key_loc',
                   'deploytest' + str(random.randint(1, 1000)))
         self.type('appdetail_managelabel_input_deploylabel_value_loc',
                   'true')
         self.click_element('appdetail_managelabel_podlabel_loc')
         self.click_element('appdetail_managelabel_add_podlabel_loc')
         self.type('appdetail_managelabel_input_podlabel_key_loc',
                   'podtest' + str(random.randint(1, 1000)))
         self.type('appdetail_managelabel_input_podlabel_value_loc', 'true')
         self.Double_Assure
     if mov == 'edit':
         event_log('case', 'edit label')
     # self.action_result('appdetail managelabel', 'sign')
     return self.screenshot('appdetail_manage_label')
示例#7
0
 def appdetail_action_result(self, testcase, appname, expectdata='none'):
     deployment_cfg_list = [
         'changerc', 'changeimg', 'managedeploylabel', 'managepodlabel',
         'changeresource', 'scheduledeployment'
     ]
     deployment_cfg_dir = {
         'changerc': ['spec', 'replicas'],
         'changeimg': ['spec', 'template', 'spec', 'containers', 'image'],
         'managedeploylabel': ['metadata', 'labels'],
         'managepodlabel': ['spec', 'template', 'metadata', 'labels'],
         'changeresource':
         ['spec', 'template', 'spec', 'containers', 'resources'],
         'scheduledeployment':
         ['spec', 'template', 'spec', 'affinity', 'nodeAffinity']
     }
     if testcase == 'managedeployment':  # 启动/停止/重启服务用例结果判断
         sign = '//*[@class="noty_body"]'
         try:
             element = self.element_present(sign)
             while element:
                 return event_log('success', testcase)
         except TimeoutException:
             return event_log('fail', testcase)
     elif testcase == 'adddeployment':  # 在应用下添加服务用例结果判断
         cmd = 'kubectl describe app ' + appname + " | grep 'Deployment Name' | awk '{print $3}'"
         realdeploymentnames = self.get_hostcmd(cmd)
         if expectdata in realdeploymentnames:
             return event_log('success', testcase)
         else:
             return event_log('fail', testcase)
     elif testcase in deployment_cfg_list:  # 配置服务相关用例结果判断
         deployment_name = self.get_hostcmd(
             "kubectl get deployment | awk '{print $1}' | grep " +
             appname)  # 得到服务名称,没有考虑多服务应用
         cmd = 'kubectl get deployment ' + deployment_name + ' -o yaml'
         deployment_yaml = self.get_hostcmd(cmd)
         realdata = yaml.load(deployment_yaml, Loader=yaml.FullLoader)
         loc = deployment_cfg_dir(testcase)
         for i in loc:
             realdata = realdata[i]
         if realdata == expectdata:
             return event_log('success', testcase)
         else:
             return event_log('fail', testcase)
示例#8
0
def managelabel(mov):
    event_log('case', 'appdetail ' + mov + ' label')
    appdetail.click_element('appdetail_managelabel_loc')
    sleep(1)
    appdetail.ManageLabel(mov)
示例#9
0
def managedeployment(mov):
    event_log('case', 'appdetail ' + mov + ' deployment')
    appdetail.ManageDeployment(mov)
示例#10
0
def changeimg(imgaddr):
    event_log('case', 'appdetail change image')
    appdetail.click_element('appdetail_changeimg_loc')
    sleep(1)
    appdetail.ChangeImg(imgaddr)
示例#11
0
def changerc(num):
    event_log('case', 'appdetail change rc')
    appdetail.click_element('appdetail_changerc_loc')
    appdetail.ChangeRc(num)
示例#12
0
def deployment_opentty():
    event_log('case','deployment_detail open tty')
    deployment_detail.click_element('deploymentdetail_opentty_loc')
    sleep(1)
    deployment_detail.OpenTty()
示例#13
0
        self.click_element('applist_createappbyimage_continue_loc')
        self.click_element('applist_createappbyimage_auditapp_loc')
        self.click_element('applist_createappbyimage_deployapp_loc')

    def create_app_action_result(self, appname):
        try:
            noty = '//*[@class="header-name"]'
            cmd = 'kubectl get app | grep ' + appname
            appresource = self.get_hostcmd(cmd)
            if appname in appresource:
                sign = True
            else:
                sign = False
            element = self.element_present(noty)
            while element:
                # while sign:  #判断标准应该只有app资源有没有被创建出来,界面只用做截图
                return event_log('success', ' create app')
            return event_log('fail', ' create app')
        except TimeoutException:
            return event_log('fail', ' create app')


if __name__ == '__main__':
    login_test('admin', 'changeme')
    app_name = 'autobyyaml' + str(random.randint(1, 1000))
    create_app_byyaml = AppCreatePage()
    event_log('case', 'create app by yaml')
    create_app_byyaml.Create_App_by_Yml(app_name)
    sleep(2)
    create_app_byyaml.create_app_action_result(app_name)
    create_app_byyaml.screenshot('create_app_byyaml')
示例#14
0
def adddeployment(image_addr, deploymentname):
    event_log('case', 'appdetail add deployment')
    appdetail.AddDeployment(image_addr, deploymentname)
示例#15
0
def pod_delete():
    event_log('case', 'pod_detail delete pod')
    pod_detail.click_element('poddetail_more_loc')
    pod_detail.click_element('poddetail_more_delete_loc')
    pod_detail.click_element('poddetail_more_delete_ensure_loc')
示例#16
0
from base_element import event_log
from PodDetailPage import PodDetailPage
from login_test import login_test
from time import sleep
import random

pod_detail = PodDetailPage()


def pod_opentty():
    event_log('case', 'pod_detail open tty')
    pod_detail.click_element('poddetail_more_loc')
    pod_detail.click_element('poddetail_more_opentty_loc')
    pod_detail.OpenTty()


def pod_delete():
    event_log('case', 'pod_detail delete pod')
    pod_detail.click_element('poddetail_more_loc')
    pod_detail.click_element('poddetail_more_delete_loc')
    pod_detail.click_element('poddetail_more_delete_ensure_loc')


if __name__ == '__main__':
    login_test('admin', 'changeme')
    integratedpod = PodDetailPage()
    event_log('case', 'manage pod')
    integratedpod.click_element('sidebar_podlist_loc')
    integratedpod.click_element('podlist_firstpod_loc')
    integratedpod.get_url()
    pod_opentty()
示例#17
0
def deployment_changerc(num):
    event_log('case','deployment_detail change rc')
    deployment_detail.click_element('deploymentdetail_more_loc')
    deployment_detail.click_element('deploymentdetail_more_changerc_loc')
    deployment_detail.ChangeRc(num)
示例#18
0
def deployment_changeimg(imgaddr):
    event_log('case','deployment_detail change image')
    deployment_detail.click_element('deploymentdetail_more_loc')
    deployment_detail.click_element('deploymentdetail_more_changeimg_loc')
    deployment_detail.ChangeImg(imgaddr)
示例#19
0
def changeresource(cpulimit, cpurequest, memlimit):
    event_log('case', 'appdetail change deployment resource')
    appdetail.click_element('appdetail_toolbarconfig_loc')
    appdetail.move_element('appdetail_deploymentlist_gear_loc')
    appdetail.double_click('appdetail_toolbarconfig_resourceconfig_loc')
    appdetail.ChangeResource(cpulimit, cpurequest, memlimit)
示例#20
0
    deployment_detail.click_element('deploymentdetail_more_changerc_loc')
    deployment_detail.ChangeRc(num)

def deployment_changeimg(imgaddr):
    event_log('case','deployment_detail change image')
    deployment_detail.click_element('deploymentdetail_more_loc')
    deployment_detail.click_element('deploymentdetail_more_changeimg_loc')
    deployment_detail.ChangeImg(imgaddr)

def deployment_managedeployment(mov):
    event_log('case','deployment_detail manage deployment')
    deployment_detail.click_element('deploymentdetail_more_loc')
    deployment_detail.click_element('deploymentdetail_more_status_loc')

def deployment_managelabel(mov):
    pass


if __name__ == '__main__':
    login_test('admin','changeme')
    integrateddeployment = DeploymentDetailPage()
    event_log('case','manage deployment')
    integrateddeployment.click_element('sidebar_workloadlist_loc')
    integrateddeployment.click_element('sidebar_workload_deploymentlist_loc')
    integrateddeployment.click_element('deploymentlist_firstdeploy_loc')
    integrateddeployment.get_url()
    # deployment_opentty()
    # integrateddeployment.click_element('sidebar_workload_deploymentlist_loc')
    # deployment_changerc(3)
    deployment_changeimg('daocloud.io/daocloud/dao-2048:v1.0.3')
示例#21
0
def scheduledeployment(schedulelabel):
    event_log('case', 'appdetail change deployment schedule policy')
    appdetail.click_element('appdetail_toolbarconfig_loc')
    appdetail.move_element('appdetail_deploymentlist_gear_loc')
    appdetail.double_click('appdetail_toolbarconfig_scheduleconfig_loc')
    appdetail.ScheduleDeployment(schedulelabel)
示例#22
0
def addservice(service_name):
    event_log('case','add service')
    servicedetail.click_element()
    servicedetail.AddService(service_name)
示例#23
0
def installmodel(imgaddr):
    event_log('case', 'modelshop install model manually')
    model.click_element('modelshop_installed_loc')
    model.InstallModel(imgaddr)
示例#24
0
def opentty():
    event_log('case', 'appdetail open tty')
    appdetail.click_element('appdetail_opentty_loc')
    sleep(1)
    appdetail.OpenTty()
示例#25
0
def pod_opentty():
    event_log('case', 'pod_detail open tty')
    pod_detail.click_element('poddetail_more_loc')
    pod_detail.click_element('poddetail_more_opentty_loc')
    pod_detail.OpenTty()
示例#26
0
def deployment_managedeployment(mov):
    event_log('case','deployment_detail manage deployment')
    deployment_detail.click_element('deploymentdetail_more_loc')
    deployment_detail.click_element('deploymentdetail_more_status_loc')
示例#27
0
    appdetail.move_element('appdetail_deploymentlist_gear_loc')
    appdetail.double_click('appdetail_toolbarconfig_scheduleconfig_loc')
    appdetail.ScheduleDeployment(schedulelabel)


def adddeployment(image_addr, deploymentname):
    event_log('case', 'appdetail add deployment')
    appdetail.AddDeployment(image_addr, deploymentname)


if __name__ == '__main__':
    login_test('admin', 'changeme')
    # app_create.app_create_byyaml('autobyyaml' + str(random.randint(1, 1000)))
    # app_create.app_create_byimage('autobyimage' + str(random.randint(1, 1000)))
    integratedapp = AppDetailPage()
    event_log('case', 'manage app')
    integratedapp.click_element('sidebar_applist_loc')
    integratedapp.click_element('applist_firstapp_loc')
    integratedapp.get_url()
    # opentty()
    # sleep(1)
    # changerc(2)
    # sleep(1)
    changeimg('daocloud.io/daocloud/dao-2048:v1.0.3')
    sleep(1)
    # managedeploylist = ['stop', 'restart']
    # for i in managedeploylist:
    #     managedeployment(i)
    #     sleep(3)
    # sleep(2)
    # managelabel('add')
示例#28
0
class DeploymentDetailPage(AppDetailPage):
    def ManageDeployment(self, mov):  # 启动/停止/重启服务
        key = 'deploymentdetail_more_status_' + mov + '_loc'
        self.click_element(key)
        self.click_element('appdetail_assure_loc')
        # self.action_result('appdetail_' + mov + ' deployment', 'sign')
        return self.screenshot('appdetail_' + mov + 'deployment')

    def ManageLabel(self):
        pass

    def deployment_detail_action_result(self,
                                        testcase,
                                        appname,
                                        expectdata='none'):
        pass


if __name__ == '__main__':
    login_test('admin', 'changeme')
    deploymentdetail = DeploymentDetailPage()
    event_log('case', 'deployment detail manage')
    deploymentdetail.click_element('sidebar_workloadlist_loc')
    deploymentdetail.click_element('sidebar_workload_deploymentlist_loc')
    deploymentdetail.click_element('deploymentlist_firstdeploy_loc')
    deploymentdetail.get_url()
    deploymentdetail.OpenTty()
    sleep(1)
    deploymentdetail.ChangeRc(3)