Ошибка в тестировании

1. user2094062 25.06.24 23:18 Сейчас в теме
Здравствуйте, не могу настроить автоматизированное тестирование системе на базе систем 1С:Предприятие
Помоги написать обработку, либо оптимизировать мой код

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ТекущийВопрос=0;
	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ОтветыНаТест.Вопрос КАК Вопрос,
	|	ОтветыНаТест.ПравильныйОтвет КАК ПравильныйОтвет,
	|	ОтветыНаТест.НеверныйОтвет1 КАК НеверныйОтвет1,
	|	ОтветыНаТест.НеверныййОтвет2 КАК НеверныййОтвет2,
	|	ОтветыНаТест.НеверныйОтвет3 КАК НеверныйОтвет3
	|ИЗ
	|	РегистрСведений.ОтветыНаТест КАК ОтветыНаТест";
	
	ЗначениеВРеквизитФормы(Запрос.Выполнить().Выгрузить(),"РезультатЗапроса");
	Балл=0;
	КоличествоВопросов=РезультатЗапроса.Количество();
	Вопрос= РезультатЗапроса[ТекущийВопрос].Вопрос;
	Элементы.Ответ1.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет1; 
	Элементы.Ответ2.Заголовок=РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет;
	
	Элементы.Ответ3.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныййОтвет2;
	
	Элементы.Ответ4.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет3;
	
	
КонецПроцедуры


&НаКлиенте
Процедура Ответ1(Команда)  
	Если РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет=Элементы.Ответ2.Заголовок    Тогда
			Балл=Балл+1;
		КонецЕсли;

	ТекущийВопрос=Число(ТекущийВопрос)+1;
	Если ТекущийВопрос>(КоличествоВопросов-1) Тогда
		Сообщить("Набранный балл: "+Балл+".");
		
		Возврат;
	Иначе   
		
				
		
		
		Вопрос= РезультатЗапроса[ТекущийВопрос].Вопрос;
		
		Элементы.Ответ1.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет1; 
		Элементы.Ответ2.Заголовок=РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет;
		
		Элементы.Ответ3.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныййОтвет2;
		
		Элементы.Ответ4.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет3;
		
		
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура Ответ2(Команда)
	Если РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет=Элементы.Ответ2.Заголовок    Тогда
			Балл=Балл+1;
		КонецЕсли;

	ТекущийВопрос=ТекущийВопрос+1;
	Если ТекущийВопрос>(КоличествоВопросов-1) Тогда 
		Сообщить("Набранный балл: "+Балл+".");
		
		Возврат;  
		
	Иначе       
				Вопрос= РезультатЗапроса[ТекущийВопрос].Вопрос;
		
		Элементы.Ответ1.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет1; 
		Элементы.Ответ2.Заголовок=РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет;
		
		Элементы.Ответ3.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныййОтвет2;
		
		Элементы.Ответ4.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет3;
		
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура Ответ3(Команда)   
	Если РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет=Элементы.Ответ2.Заголовок    Тогда
			Балл=Балл+1;
		КонецЕсли;

	ТекущийВопрос=ТекущийВопрос+1;
	Если ТекущийВопрос>(КоличествоВопросов-1) Тогда
		Сообщить("Набранный балл: "+Балл+".");
		
		Возврат;  
		
	Иначе                      
			Вопрос= РезультатЗапроса[ТекущийВопрос].Вопрос;
		
		Элементы.Ответ1.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет1; 
		Элементы.Ответ2.Заголовок=РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет;
		
		Элементы.Ответ3.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныййОтвет2;
		
		Элементы.Ответ4.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет3;
		
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура Ответ4(Команда) 
	Если РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет=Элементы.Ответ2.Заголовок    Тогда
			Балл=Балл+1;
		КонецЕсли;

	ТекущийВопрос=ТекущийВопрос+1;
	Если ТекущийВопрос>(КоличествоВопросов-1) Тогда 
		Сообщить("Набранный балл: "+Балл+".");
		Возврат;  
		
	Иначе  
		
		Вопрос= РезультатЗапроса[ТекущийВопрос].Вопрос;
		
		Элементы.Ответ1.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет1; 
		Элементы.Ответ2.Заголовок=РезультатЗапроса[ТекущийВопрос].ПравильныйОтвет;
		
		Элементы.Ответ3.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныййОтвет2;
		
		Элементы.Ответ4.Заголовок=РезультатЗапроса[ТекущийВопрос].НеверныйОтвет3;
		
		
	КонецЕсли;
	
КонецПроцедуры
Показать


Дальше есть тестирование


&НаКлиенте
Функция ПолучитьЯндексТокен() Экспорт
	
	СтруктуруЗапроса = СформироватьСтруктуруЗапроса();
	СтрокаДляТела = РаботаСHTTP.СериализоватьВJSON(СтруктуруЗапроса);
	
	Результат = ОтправитьЗапросПолучитьТокен(СтрокаДляТела);
	Возврат Результат.iamToken;
		
КонецФункции

&НаКлиенте
Функция ОтправитьЗапросПолучитьТокен(СтрокаДляТела)  Экспорт
	
	
	SSL = Новый ЗащищенноеСоединениеOpenSSL();
	HTTP = Новый HTTPСоединение("iam.api.cloud.yandex.net",,,,,,SSL);
	
	ЗаголовокЗапросаHTTP = Новый Соответствие();
	
	ЗаголовокЗапросаHTTP.Вставить("Authorization", "Inherit authfrom parent");
	ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json");
	ЗапросHTTP = Новый HTTPЗапрос("iam/v1/tokens", ЗаголовокЗапросаHTTP);
	
	
	ЗапросHTTP.УстановитьТелоИзСтроки(СтрокаДляТела);
	
	ОтветHTTP = HTTP.ОтправитьДляОбработки(ЗапросHTTP);
	JSON = ОтветHTTP.ПолучитьТелоКакСтроку();
	
	Результат = РаботаСHTTP.ДесериализоватьJSON(JSON);
	
	Возврат Результат;
	
КонецФункции


&НаКлиенте
Функция СформироватьСтруктуруЗапроса() Экспорт          
	
	yandexPassportOauthToken = "y0_AgAABj-7iuAATuwQAAAAEH0ViqAADwSZVvNZPvppKYGTZ1YLbY_ysUw";
	
	
	СтруктуруЗапроса = Новый Структура("yandexPassportOauthToken", yandexPassportOauthToken);
	
	Возврат СтруктуруЗапроса;
	
КонецФункции  




#Область РаботаСJSON

&НаКлиенте
Функция СериализоватьВJSON(ДанныеОКлиенте) Экспорт
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	ЗаписатьJSON(ЗаписьJSON, ДанныеОКлиенте);
	СтрокаДляТела = ЗаписьJSON.Закрыть();
	
	Возврат СтрокаДляТела;
	
КонецФункции

&НаКлиенте
Функция ДесериализоватьJSON(JSON, ЧитатьСоответствие = Ложь)  Экспорт
	
	ЧтениеJSON = Новый ЧтениеJSON();
	ЧтениеJSON.УстановитьСтроку(JSON);
	Результат = ПрочитатьJSON(ЧтениеJSON, ЧитатьСоответствие);
	ЧтениеJSON.Закрыть();
	
	Возврат Результат;
	
КонецФункции      

#КонецОбласти




 Процедура ЗаписатьКонс(Токен) Экспорт 
	 Константы.Токен.Установить(Токен);
 КонецПроцедуры


Показать
По теме из базы знаний
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот