Best Python code snippet using autotest_python
iperf.py
Source:iperf.py
...156 attr = {'stream_count':streams}157 keyval = {}158 # Short circuit to handle errors due to client timeouts159 if not self.results[i] or not self.results[i][IPERF_IX].stdout:160 self.write_iteration_keyval(attr, keyval)161 continue162 mpstat_out = self.results[i][MPSTAT_IX].stdout163 iperf_out = self.results[i][IPERF_IX].stdout164 # Process mpstat output165 cpu_stats = self.network_utils.process_mpstat(mpstat_out, 5)166 keyval['CPU_C'] = 100 - cpu_stats['idle']167 keyval['CPU_C_SYS'] = cpu_stats['sys']168 keyval['CPU_C_HI'] = cpu_stats['irq']169 keyval['CPU_C_SI'] = cpu_stats['soft']170 keyval['INTRS_C'] = cpu_stats['intr/s']171 runs = {'Bandwidth_S2C':[], 'Bandwidth_C2S':[],172 'Jitter_S2C':[], 'Jitter_C2S':[]}173 if self.udp:174 regex = udp_regex175 keys = udp_keys176 # Ignore the first line177 stdout = iperf_out.split('\n',1)[1]178 else:179 regex = tcp_regex180 keys = tcp_keys181 stdout = iperf_out182 # This will not find the average lines because the 'id' field183 # is negative and doesn't match the patterns -- this is good184 for match in regex.findall(stdout):185 stats = dict(zip(keys,match))186 # Determine Flow Direction187 if (stats['local_ip'] == self.ip and188 stats['local_port'] == self.SERVER_PORT):189 runs['Bandwidth_S2C'].append(int(stats['bandwidth']))190 try:191 runs['Jitter_S2C'].append(float(stats['jitter']))192 except Exception:193 pass194 else:195 runs['Bandwidth_C2S'].append(int(stats['bandwidth']))196 try:197 runs['Jitter_C2S'].append(float(stats['jitter']))198 except Exception:199 pass200 # Calculate sums assuming there are values201 for key in [k for k in runs if len(runs[k]) > 0]:202 keyval[key] = sum(runs[key])203 # scale the bandwidth based on the actual time taken204 # by tests to run205 scale = self.test_time/self.actual_times[i]206 total_bw = 0207 for key in ['Bandwidth_S2C', 'Bandwidth_C2S']:208 if len(runs[key]) > 0:209 keyval[key] = keyval[key] * scale210 total_bw = total_bw + keyval[key]211 if keyval['CPU_C']:212 keyval['Efficiency_C'] = total_bw/keyval['CPU_C']213 else:214 keyval['Efficiency_C'] = total_bw215 self.write_iteration_keyval(attr, keyval)216 else:217 # This test currently does not produce a keyval file on the218 # server side. This should be implemented eventually....
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!