def _start(self): super(GUIScreen, self)._start() self.root = tkinter.Tk() self.root.geometry("%sx%s" % (self.size[0] * 7, self.size[1] * 15)) self.root.bind("<Configure>", self.resize) if is_linux(): self.root.bind("<Control-4>", self.change_font) self.root.bind("<Control-5>", self.change_font) else: self.root.bind("<Control-MouseWheel>", self.change_font) self.root.protocol("WM_DELETE_WINDOW", self.closed_window) self.text = tkinter.Text(self.root, font="TkFixedFont", wrap=tkinter.NONE, state=tkinter.DISABLED, background="black", foreground="light gray") self.text.pack(side=tkinter.LEFT, fill=tkinter.BOTH, expand=tkinter.YES) self.font = tkfont.Font(self.root, self.text.cget("font")) self.text.config(font=self.font) self.__prepare_tags() icon = tkinter.PhotoImage( file=os.path.join(os.path.dirname(os.path.abspath(bztr.__file__)), "taurus_logo.gif")) self.root.tk.call('wm', 'iconphoto', self.root._w, icon)
def _generate_id(): if os.getenv("JENKINS_HOME"): prefix = "jenkins" elif os.getenv("TRAVIS"): prefix = "travis" elif any([key.startswith("bamboo") for key in os.environ.keys()]): prefix = "bamboo" elif os.getenv("TEAMCITY_VERSION"): prefix = "teamcity" elif os.getenv("DOCKER_HOST"): prefix = "docker" elif os.getenv("AWS_"): prefix = "amazon" elif os.getenv("GOOGLE_APPLICATION_CREDENTIALS") or os.getenv( "CLOUDSDK_CONFIG"): prefix = "google_cloud" elif os.getenv("WEBJOBS_NAME"): prefix = "azure" elif is_linux(): prefix = 'linux' elif is_windows(): prefix = 'windows' else: prefix = 'macos' return "%s-%x" % (prefix, uuid.getnode())
def test_chrome_proxy(self): self.obj.responses = [ ResponseEmul(200, '{"result" : {}}'), ResponseEmul(200, '{"result" : {"port": "port1", "host": "host1"}}'), ResponseEmul(200, ''), ResponseEmul(200, ''), # startup: startRecording ResponseEmul(200, ''), # shutdown: stopRecording ResponseEmul(200, '{"result" : "http://jmx_url"}'), ResponseEmul(200, 'regular jmx contents'), ResponseEmul(200, '{"result" : "http://smartjmx_url"}'), ResponseEmul(200, 'smartjmx content')] self.obj.engine.config.merge({ 'modules': { 'recorder': { 'token': '123'}}}) self.obj.settings = self.obj.engine.config.get('modules').get('recorder') self.sniff_log(self.obj.log) executor = SeleniumExecutor() self.obj.engine.provisioning.executors = [executor] self.obj.prepare() if is_linux(): self._check_linux() elif is_windows(): self._check_windows() else: # MacOS self._check_mac() self.obj.shutdown() self.obj.post_process()
def _generate_id(): if os.getenv("JENKINS_HOME"): prefix = "jenkins" elif os.getenv("TRAVIS"): prefix = "travis" elif any([key.startswith("bamboo") for key in os.environ.keys()]): prefix = "bamboo" elif os.getenv("TEAMCITY_VERSION"): prefix = "teamcity" elif os.getenv("DOCKER_HOST"): prefix = "docker" elif os.getenv("AWS_"): prefix = "amazon" elif os.getenv("GOOGLE_APPLICATION_CREDENTIALS") or os.getenv("CLOUDSDK_CONFIG"): prefix = "google_cloud" elif os.getenv("WEBJOBS_NAME"): prefix = "azure" elif is_linux(): prefix = 'linux' elif is_windows(): prefix = 'windows' else: prefix = 'macos' return "%s-%x" % (prefix, uuid.getnode())
def startup(self): super(Proxy2JMX, self).startup() self.log.info('Starting BlazeMeter recorder...') labels = [] additional_env = {} if is_linux(): self.log.info('Set proxy for selenium: %s', self.proxy_addr) additional_env.update({'http_proxy': self.proxy_addr, # set vars anyway for case 'https_proxy': self.proxy_addr, # linux system can't say correct name 'HTTP_PROXY': self.proxy_addr, 'HTTPS_PROXY': self.proxy_addr, "CHROMIUM_USER_FLAGS": "--proxy-server=%s" % self.proxy_addr, # for Linux chrome 'XDG_CURRENT_DESKTOP': None, # (it might be in Docker, etc.) 'DESKTOP_SESSION': None, 'GNOME_DESKTOP_SESSION_ID': None, 'KDE_FULL_SESSION': None}) elif is_windows(): self.log.info('Prepare chrome loader') chrome_path = self._get_chrome_path() if chrome_path: self._prepare_chrome_loader() new_path = join(self.engine.artifacts_dir, 'chrome-loader') + os.pathsep + os.getenv('PATH', '') additional_env.update({ 'path_to_chrome': chrome_path, 'additional_chrome_params': '--proxy-server="%s"' % self.proxy_addr, 'chrome_loader_log': self.engine.create_artifact('chrome-loader', '.log'), 'path': new_path }) else: self.log.warning('Chrome not found') else: # probably we are in MacOS self.log.warning("Your system doesn't support settings of proxy by Taurus way") for executor in self.engine.provisioning.executors: if isinstance(executor, SeleniumExecutor): if executor.label: labels.append(executor.label) executor.env.set(additional_env) if isinstance(executor, SubprocessedExecutor): if executor.label: labels.append(executor.label) executor.env.set(additional_env) if len(labels) == 1: self.label += '_' + labels[0] self.proxy.start()
def startup(self): super(Proxy2JMX, self).startup() self.log.info('Starting BlazeMeter recorder...') labels = [] additional_env = {} if is_linux(): self.log.info('Set proxy for selenium: %s', self.proxy_addr) additional_env.update({'http_proxy': self.proxy_addr, # set vars anyway for case 'https_proxy': self.proxy_addr, # linux system can't say correct name 'HTTP_PROXY': self.proxy_addr, 'HTTPS_PROXY': self.proxy_addr, "CHROMIUM_USER_FLAGS": "--proxy-server=%s" % self.proxy_addr, # for Linux chrome 'XDG_CURRENT_DESKTOP': None, # (it might be in Docker, etc.) 'DESKTOP_SESSION': None, 'GNOME_DESKTOP_SESSION_ID': None, 'KDE_FULL_SESSION': None}) elif is_windows(): self.log.info('Prepare chrome loader') chrome_path = self._get_chrome_path() if chrome_path: self._prepare_chrome_loader() new_path = join(self.engine.artifacts_dir, 'chrome-loader') + os.pathsep + os.getenv('PATH', '') additional_env.update({ 'path_to_chrome': chrome_path, 'additional_chrome_params': '--proxy-server="%s"' % self.proxy_addr, 'chrome_loader_log': self.engine.create_artifact('chrome-loader', '.log'), 'path': new_path }) else: self.log.warning('Chrome not found') else: # probably we are in MacOS self.log.warning("Your system doesn't support settings of proxy by Taurus way") for executor in self.engine.provisioning.executors: if isinstance(executor, AbstractSeleniumExecutor): if executor.label: labels.append(executor.label) executor.env.set(additional_env) if isinstance(executor, SubprocessedExecutor): if executor.label: labels.append(executor.label) executor.env.set(additional_env) if len(labels) == 1: self.label += '_' + labels[0] self.proxy.start()
def test_draw_screen(self): lines = [((x[0], None, "%s\n" % x[0]), ) for x in TaurusConsole.palette] canvas = TestCanvas(lines) obj = Screen() """ :type: bzt.modules.screen.GUIScreen """ obj.register_palette(TaurusConsole.palette) obj.start() for _ in range(1, 10): obj.draw_screen((1, 1), canvas) time.sleep(0.5) if hasattr(obj, 'font'): old_font_size = 10 obj.font['size'] = old_font_size self.assertGreater(old_font_size, 0) if is_linux(): obj.root.event_generate("<Control-4>") else: obj.root.event_generate("<Control-MouseWheel>", delta=120) self.assertGreater(obj.font['size'], old_font_size) if is_linux(): obj.root.event_generate("<Control-5>") else: obj.root.event_generate("<Control-MouseWheel>", delta=-120) self.assertEqual(obj.font['size'], old_font_size) obj.stop()
def _start(self): super(GUIScreen, self)._start() self.root = tkinter.Tk() self.root.geometry("%sx%s" % (self.size[0] * 7, self.size[1] * 15)) self.root.bind("<Configure>", self.resize) if is_linux(): self.root.bind("<Control-4>", self.change_font) self.root.bind("<Control-5>", self.change_font) else: self.root.bind("<Control-MouseWheel>", self.change_font) self.root.protocol("WM_DELETE_WINDOW", self.closed_window) self.text = tkinter.Text(self.root, font="TkFixedFont", wrap=tkinter.NONE, state=tkinter.DISABLED, background="black", foreground="light gray") self.text.pack(side=tkinter.LEFT, fill=tkinter.BOTH, expand=tkinter.YES) self.font = tkfont.Font(self.root, self.text.cget("font")) self.text.config(font=self.font) self.__prepare_tags() icon = tkinter.PhotoImage(file=os.path.join(os.path.dirname(os.path.abspath(bztr.__file__)), "taurus_logo.gif")) self.root.tk.call('wm', 'iconphoto', self.root._w, icon)
def test_chrome_proxy(self): self.obj.responses = [ ResponseEmul(200, '{"result" : {}}'), ResponseEmul(200, '{"result" : {"port": "port1", "host": "host1"}}'), ResponseEmul(200, ''), ResponseEmul(200, ''), # startup: startRecording ResponseEmul(200, ''), # shutdown: stopRecording ResponseEmul(200, 'regular jmx contents'), ResponseEmul(200, '{"result" : {"smartjmx": "unavailable"}}'), ResponseEmul(200, '{"result" : {"smartjmx": "available"}}'), ResponseEmul(200, 'only one string') ] self.obj.engine.config.merge( {'modules': { 'recorder': { 'token': '123' } }}) self.obj.settings = self.obj.engine.config.get('modules').get( 'recorder') self.sniff_log(self.obj.log) self.obj.prepare() self.obj.engine.provisioning.executors = [SeleniumExecutor()] if is_linux(): self._check_linux() elif is_windows(): self._check_windows() else: # MacOS, for future and manual testing self.assertIn("Your system doesn't support settings of proxy", self.log_recorder.warn_buff.getvalue()) self.obj.shutdown() self.obj.post_process()