У меня есть код, который использует селен, тестирует производительность URL, у меня есть для l oop, чтобы вычислить среднее значение производительности, но когда я пытаюсь экспортировать производительность и ключ от нее (это URL), он дает мне неверную информацию (он дает мне 0) вместо значения, сохраненного в переменной.
Я пытался использовать список для сохранения среднего значения, но не смог знать, как отображать его по значению ключа в файле CSV.
import time
import unittest
import json
from selenium import webdriver
class Tester(unittest.TestCase):
"doc string"
def setUp(self):
"doc string"
self.driver = webdriver.Chrome("/Users/tamerjar/Desktop/chromedriver")
self.driver.implicitly_wait(30)
self.verificationErrors = []
def test_er(self):
"doc string"
driver = self.driver
total = {}
sum_list = []
print("total" + str(total))
durations = []
with open('output.txt', 'w') as json_file:
for result in range(10):
driver.get("https://en.wikipedia.org/wiki/Software_metric")
result = driver.execute_script('return window.performance.getEntries()')
print(result)
print((len(result)))
for current in result:
duration_time = current['duration']
durations.append(duration_time)
print("durations" + str(durations))
#print(dir(current))
#print(current.keys())
url = current['name']
current_list = total.get(url, [])
current_list.append(current['duration'])
total[url] = current_list
print("current list" + str(current_list))
print("total" + str(total))
print(current['name'])
print(current['duration'])
print(current.keys())
json_file.write(f"{current['name']}, {current['duration']}\n")
print("Total final : " + str(total))
for duration in total:
# This is how i calculate the avergae, in respect to the json data
list = total[duration]
#print(list)
average = sum(total[duration])/len(total)
#And here i tried to display the key, with the average time but got the
#wrong average times.
with open('mycsv.csv', 'w') as csv_file:
for key in total.keys():
csv_file.write(f'{key}, {average}\n')
print("Sum2" + str(average))
def tearDown(self):
self.driver.quit()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()