Собственно говоря, никакого нагрузочного тестирования не получилось потому здесь и пишу. <br><br>Дано: <br>1С 8.1(8.1.12.101) База УПП 1.2 (1.2.19.1) Клиент серверный вариант.<br>Сервер: Win2003 Server, SQL 2000 SP4.<br>Железо: Процессоры 2 Xeon 5130 Память 8Gb.<br>Все стоит на одной машине, народу не много одновременно не более 10 человек. Выбор УПП был связан с тем, что у нас не просто предприятие, а группа компаний 5 организаций, нужно видеть всех сразу и получать отчет по всей группе компаний одновременно.<br>Вообще все это тестирование было затеяно с целью понять, как будет работать 1С при увеличении количества пользователей в базе, ну скажем до 30 человек, и соответственно аргументировать руководству покупку второго сервера. <br><br>Что сделали:<br>1. Нашли и прогнали тест производительности TPC-1C-GILV (http://www.gilev.ru/1c/tpc/) получили в среднем 28 балов.<br>2. Установили 1С Тест Центр 1.0.5.1 и на этом все закончилось.<br>При попытке воспользоваться Сценарием для 1С Тест Центра Эмуляция работы пользователей по вводу документов с сайта (http://users.v8.1c.ru), выполняя внешнюю обработку, Генерация сценария, как указано в инструкции (http://users.v8.1c.ru/tc_sc_euwd_ug.aspx), получаем ответ: Не удалось получить список документов {ВнешняяОбработка.ГенерацияСценария (489)}: Значение не является значением объектного типа (имя) В выбранном интервале нет добавленных и проведенных документов. Хотя перед этим мы документы специально проводили и журнал у нас включен, как в инструкции написано.<br><br>Со вторым тестом Создание документов "Реализация товаров и услуг" для УПП все еще хуже при попытке импортировать сценарий Создание РТУ.xml в базу через Тест Центр / Конструктор сценариев 1С отвечает Ошибка при записи Объекта Инициализация Сценария {ОбщаяФорма.ТЦИмпортСценария(75)}: Ошибка при вызове метода контекста (Запись): Код не уникален! Импорт не выполнен.<br><br>Вопрос: С чем связаны данные ошибки. Возможно, кто-нибудь знает, что я сделал не так. Что стоит почитать. Где можно поискать другие тестовые обработки для 1С:Тест Цента. Существуют ли какие-нибудь другие варианты провести тестирование 1С на предмет скорости работы при увеличении количества пользователей.<br>
По первой ошибке - так у вас есть в "выбранном интервале" документы или нет? Или вы их попроводили и потом удалили?<br>По второй ошибке - посмотрите в отладчике, что там за элемент справочника создается?
"1. Да проведенные документы в базе есть. Специально перед выполнением теста проводим порядка 10-20 документов. Стирать их никто не будет т.к. база специально создана для тестирования (копия рабочей).<br><br>2. Вот что видно в отладчике.<br>// Запись указанного объекта в базу данных<br>//<br>// Параметры:<br>// Объект - СправочникОбъект, за6писываемый объект<br>//<br>// Возвращаемое значение:<br>// Булево - Истина, если запись прошла успешно<br>//<br>Функция ЗаписатьОбъект(Объект)<br> <br> ТипОбъекта = ТипЗнч(Объект);<br> <br> Если ТипОбъекта <> Тип("СправочникОбъект.ТЦТестоваяОбработка") Тогда<br> ЭтоСценарий = ТипЗнч(Объект) = Тип("СправочникОбъект.ТЦСценарий");<br> <br> Если Не ЭтоСуществующийОбъект(?(ЭтоСценарий, Объект.Родитель, Объект.Владелец)) Тогда<br> Возврат Истина;<br> КонецЕсли;<br> КонецЕсли;<br> <br> Если ЭтоСуществующийОбъект(Объект) Тогда<br> <br> Если ТипОбъекта <> Тип("СправочникОбъект.ТЦПоказательПроизводительности") Тогда<br> Объект.УстановитьНовыйКод();<br> КонецЕсли;<br> <br> Если Не мПерезаписыватьВсе Тогда<br> Результат = ВопросОПерезаписиОбъекта(Объект.Наименование);<br> <br> Если Результат = 0 Тогда<br> Возврат Истина;<br> ИначеЕсли Результат = 2 Тогда<br> мПерезаписыватьВсе = Истина;<br> КонецЕсли<br> КонецЕсли;<br> КонецЕсли;<br> <br> Попытка<br> Объект.Записать();<br> Исключение<br> Ошибка = ОписаниеОшибки();<br> ОтменитьТранзакцию();<br> Сообщение = "Ошибка при записи объекта " + Объект.Наименование + Символы.ПС + Ошибка + Символы.ПС + "Импорт не выполнен";<br> Предупреждение(Сообщение);<br>-> Возврат Ложь;<br> КонецПопытки;<br> <br> Возврат Истина;<br>КонецФункции // ЗаписатьОбъект()<br><br>Ссылка на Print Scrn экрана<br>http://narod.ru/disk/4152277000/1C%D0%A2%D0%B5%D1%81%D1%82%D0%A6%D0%B5%D0%BD%D1%82%D1%80.JPG.html<br>"
"Это все что мне пишет отладчик. Я так понимаю ("Объект - СправочникОбъект, за6писываемый объект") он пытаеться записать именно это?<br><br>Перем мФормаВопроса; // Форма ТЦВопрос<br>Перем мПерезаписыватьВсе; // Признак перезаписи всех объектов<br><br>// Выбрать XML файл сценария<br>Процедура ВыборФайла(Элемент, СтандартнаяОбработка)<br> <br> ВводИмениФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);<br> ВводИмениФайла.Фильтр = "Файл XML(*.xml)|*.xml";<br> Если ВводИмениФайла.Выбрать() Тогда<br> ФайлСценария = ВводИмениФайла.ПолноеИмяФайла;<br> КонецЕсли;<br> <br>КонецПроцедуры<br><br><br>// Вопрос пользователю по поводу <br>//<br>// Параметры:<br>// Наименование - Строка, наименование перезаписываемого объекта<br>//<br>// Возвращаемое значение:<br>// Перечислени.ТЦОтветНаВопрос - результат ответа на вопрос<br>Функция ВопросОПерезаписиОбъекта(Наименование)<br> Если мФормаВопроса = Неопределено Тогда<br> мФормаВопроса = ПолучитьОбщуюФорму("ТЦВопрос");<br> КонецЕсли;<br> <br> мФормаВопроса.Заголовок = "Тест-центр";<br> мФормаВопроса.Сообщение = "Импортируемый объект """""<br> + Наименование<br> + """"" уже существует в базе. Перезаписать его?";<br> <br> Возврат мФормаВопроса.ОткрытьМодально();<br>КонецФункции<br><br><br>// Запись указанного объекта в базу данных<br>//<br>// Параметры:<br>// Объект - СправочникОбъект, за6писываемый объект<br>//<br>// Возвращаемое значение:<br>// Булево - Истина, если запись прошла успешно<br>//<br>Функция ЗаписатьОбъект(Объект)<br> <br> ТипОбъекта = ТипЗнч(Объект);<br> <br> Если ТипОбъекта <> Тип("СправочникОбъект.ТЦТестоваяОбработка") Тогда<br> ЭтоСценарий = ТипЗнч(Объект) = Тип("СправочникОбъект.ТЦСценарий");<br> <br> Если Не ЭтоСуществующийОбъект(?(ЭтоСценарий, Объект.Родитель, Объект.Владелец)) Тогда<br> Возврат Истина;<br> КонецЕсли;<br> КонецЕсли;<br> <br> Если ЭтоСуществующийОбъект(Объект) Тогда<br> <br> Если ТипОбъекта <> Тип("СправочникОбъект.ТЦПоказательПроизводительности") Тогда<br> Объект.УстановитьНовыйКод();<br> КонецЕсли;<br> <br> Если Не мПерезаписыватьВсе Тогда<br> Результат = ВопросОПерезаписиОбъекта(Объект.Наименование);<br> <br> Если Результат = 0 Тогда<br> Возврат Истина;<br> ИначеЕсли Результат = 2 Тогда<br> мПерезаписыватьВсе = Истина;<br> КонецЕсли<br> КонецЕсли;<br> КонецЕсли;<br> <br> Попытка<br> Объект.Записать();<br> Исключение<br> Ошибка = ОписаниеОшибки();<br> ОтменитьТранзакцию();<br> Сообщение = "Ошибка при записи объекта " + Объект.Наименование + Символы.ПС + Ошибка + Символы.ПС + "Импорт не выполнен";<br> Предупреждение(Сообщение);<br>!!!-> Возврат Ложь;<br> КонецПопытки;<br> <br> Возврат Истина;<br>КонецФункции // ЗаписатьОбъект()<br><br><br>// Проверка существования объекта в базе данных<br>//<br>// Параметры:<br>// Ссылка - СправочникСсылка, ссылка на проверяемый объект<br>//<br>// Возвращаемое значение:<br>// Булево - Истина, если объект с таким уникальным идентификатором существует в базе данных<br>//<br>Функция ЭтоСуществующийОбъект(Объект)<br> Если Объект = Неопределено Тогда<br> Возврат Ложь;<br> КонецЕсли;<br> <br> Запрос = Новый Запрос;<br> <br> Справочник = Объект.Метаданные().Имя;<br> <br> Запрос.Текст = "ВЫБРАТЬ<br> | Таблица.Ссылка<br> |ИЗ<br> | Справочник." + Справочник + " КАК Таблица<br> |ГДЕ<br> | Таблица.Ссылка = &Объект";<br> <br> Запрос.УстановитьПараметр("Объект", Объект.Ссылка);<br> Возврат Не Запрос.Выполнить().Пустой();<br>КонецФункции<br><br>// Импортировать сценарий<br>Процедура ИмпортСценария(Элемент)<br> <br> // Открыть XML файл сценария<br> Чтение = Новый ЧтениеXML();<br> Попытка<br> Чтение.ОткрытьФайл(ФайлСценария);<br> Исключение<br> Ошибка = ОписаниеОшибки();<br> Сообщение = "Не могу открыть файл" + Символы.ПС + ФайлСценария + Символы.ПС + Ошибка;<br> Предупреждение(Сообщение);<br> Возврат;<br> КонецПопытки;<br> <br> // Прочитать количество объектов<br> Пока Чтение.Прочитать() Цикл<br> Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда<br> ЭлементыФормы.Индикатор.МаксимальноеЗначение = Чтение.ПолучитьАтрибут("Количество");<br> КоличествоОбъектовНаПервомУровне = Число(Чтение.ПолучитьАтрибут("КоличествоНаПервомУровне"));<br> Индикатор = 0;<br> Прервать;<br> КонецЕсли;<br> КонецЦикла;<br> <br> // Если при ответе на вопрос о перезаписывании существующих объектов выбрать "Да для явсех",<br> // тогда эта переменная будет иметь значение Истина<br> мПерезаписыватьВсе = Ложь;<br> <br> // Признак того, что при экспорте были экспортированны все объекты. Это важно потому, что<br> // в этом случае родителей придется назначать нескольким элементам, а именно тем, у кого<br> // родителем является корневой элемент справочника ТЦСценарий.<br> ИмпортКорня = Ложь;<br> <br> // Чтение и запись объектов из файла-хранилища<br> Если Чтение.Прочитать() Тогда<br> НачатьТранзакцию();<br> <br> // Чтение остальных объектов их файла-хранилища<br> Пока ВозможностьЧтенияXML(Чтение) Цикл<br> <br> Попытка<br> Объект = ПрочитатьXML(Чтение);<br> Исключение<br> Предупреждение("Файл сценария содержит ошибки: " + ОписаниеОшибки());<br> Возврат;<br> КонецПопытки;<br> <br> Если Объект = Неопределено Тогда<br> Предупреждение("Файл сценария поврежден: Невозможно прочитать объект");<br> Возврат;<br> КонецЕсли;<br> <br> Если КоличествоОбъектовНаПервомУровне > 0 Тогда<br> Объект.Родитель = Сценарий;<br> КоличествоОбъектовНаПервомУровне = КоличествоОбъектовНаПервомУровне - 1;<br> КонецЕсли;;<br> <br> Если Не ЗаписатьОбъект(Объект) Тогда<br> Возврат;<br> КонецЕсли;<br> <br> Индикатор = Индикатор + 1;<br> КонецЦикла;<br> <br> ЗафиксироватьТранзакцию();<br> КонецЕсли;<br> <br> Чтение.Закрыть();<br> Предупреждение("Сценарий успешно импортирован", 3);<br> <br>КонецПроцедуры<br><br>"
"В отладчике вычислите выражение "Объект" и напишите нам что это!<br>Что то Ваши знания по работе с отладчиком не очень! ;) Может быть лучше пригласить специалиста? Без обид!"
По поводу моих знаний, абсолютно согласен, я вообще отладчик впервые запустил, после того как вы мне сказали в нем посмотреть.<br>По поводу пригласить кого-нибудь тоже не против, но хотелось бы, чтобы человек, который придет, понимал, что он должен сделать, а не просто сидел свое время (была у нас пара таких случаев). Если сможете подсказать, кто может с моей проблемой справиться, буду благодарен.