İzlenecek Yok: Dinamik Parametreleri İlişkilendirmek
Bu yönergede algılanamaz dinamik parametre hatası oluşturmak için özel bir kod içeren bir ASP.NET Web uygulaması oluşturursunuz. Bu tür hataları saptamak ve bunları düzeltmeyi öğreneceksiniz.
Bazı Web siteleri ve uygulamaları kendi bir veya daha çok Web isteklerinde dinamik parametreler kullanır. Dinamik parametre, kullanıcı bir uygulamayı her çalıştırdığında değer oluşturan parametredir. Dinamik bir parametre, Web başarım testi kayıttan yürütmenizin başarısız olmasına neden olabilir çünkü test her çalıştığında dinamik değerin farklı olması muhtemeldir. Bu nedenle, kaydedilmiş değerleri geri oynatamazsınız. Oturum kimliği, dinamik parametreye bir örnektir. Değeri 5-30 dakikada bir değişir.
Web performans testi kaydedicisi ve kayıttan yürütme motoru en sık karşılaşılan dinamik parametre türlerini otomatik olarak işler:
Tanımlama bilgisi değeri içinde düzenlenmiş dinamik parametre değerleri. Web performans testi motoru kayıttan yürütme sırasında otomatik olarak bunları işler.
ASP.NET görüntüleme durumu gibi, HTML sayfalarında gizli alanlar olarak düzenlenmiş dinamik parametre değerleri. Bunlar Web performans Testi Kaydedicisi tarafından otomatik olarak işlenir. Web Performans Testi Kaydedicisi teste için gizli alan ayıklama kuralları ekler.
Sorgu dizisi veya form gönderi parametresi olarak düzenlenmiş dinamik parametre değerleri. Test tamamlandığında bunlar dinamik parametrelerin algılanması aracılığıyla işlenir.
Ancak, hala otomatik olarak işlenmeyen bazı dinamik parametre formları vardır. Bu parametreleri doğru bir şekilde işlemek için Web başarım testlerinizdeki dinamik parametrelere ayıklama kuralları ekleyebilirsiniz. Ancak, ayıklama kuralı eklemeden önce, dinamik parametrelerin nerede başlatıldığını bulmalısınız. Bu izlenecek yol, sahte bir algılanamaz oturum kimliği parametresi hatasını nasıl bulabileceğiniz ve düzeltebileceğinizi göstermektedir.
Bu yönergede, aşağıdaki görevleri tamamlamanız gerekmektedir:
Bir Microsoft ASP.NET Web uygulaması oluşturun.
Uygulamaya bazı ASP.NET sayfalarını ekleyin.
Uygulamaya bazı denetimler ekleyin.
ASP.NET kodunu değiştirin.
Arkaya bazı C# kodlarını ekleyin.
Algılanamaz dinamik parametre için bazı JavaScript kodlarını ekleyin.
Uygulamaya yeni bir Web performans testi kaydedin ve ASP.NET dinamik özelliğinin algılanıp algılanmadığına dikkat edin.
Web başarım testini çalıştırın ve algılanmayan bir dinamik parametre içerdiğine dikkat edin.
Dinamik parametre hatasını ayırmak için Web Başarım Test Sonuçları Görüntüleyicisi'ndeki yeniden çalma sırasında hızlı bul kullanın.
Dinamik parametreye bir ayıklama kuralı ekleyin.
Web Performans Testi Düzenleyicisi'nde ayıklama kuralını dinamik parametreye bağlayın.
Web başarım testini hatalar olmadan yeniden çalıştırın.
Önkoşullar
- Visual Studio Ultimate.
Web Uygulaması Oluşturma
Web uygulaması oluşturmak için
Visual Studio Ultimate'taki, üzerinde Dosya menüsünden seçin Yeni ve sonra seçin Proje.
Yeni Proje iletişim kutusu görüntülenir.
Altında Yüklü Şablonlar, tercih ve sonra seçin programlama dilini genişletin Web.
Web proje türleri listesinde, ASP.NET Boş Web Uygulaması'nı seçin.
Ad kutusunaDynamicParameterSample yazın.
Konum kutusunda, Web uygulamanızı oluşturacağınız klasörü belirtin.
Çözüm için dizin oluştur'u seçin.
Tamam'ı seçin.
Proje menüsünden Yeni Öğe Ekle'yi seçin.
Yeni Öğe Ekle iletişim kutusu görüntülenir.
Öğeler listesinde, Web formu seçin.
İçinde adı metin kutusunu, türü Querystring.aspx ve sonra Ekle.
Querystring.aspx Sayfasına Bir HiddenField Denetimi Ekleme
Querystring.aspx sayfasına bir HiddenField denetimi eklemek için
Çözüm Gezgini'nde, Querystring.aspx'i sağ tıklatın ve Görünüm Tasarımcısı'nı seçin.
Boş bir sayfa görüntülenir.
Araç kutusu görünmüyorsa, seçim Görünüm ve sonra seçin araç.
Standart grubundan bir HiddenField'ı sayfaya sürükleyin.
Tasarım yüzeyine bir HiddenField denetimi eklenir.
HiddenField sayfasında ve Özellikler penceresinde seçin çeşitli kategorisi, değeri değiştirmek (ID) için HiddenFieldSessionID.
Üzerinde Dosya menüsünden seçin Tümünü Kaydet.
Querystring.aspx Sayfasına Kod Ekleme
Querystring.aspx sayfasına kod eklemek için
Querystring sayfasını alt seçin kaynak.
Kod Editörü, Querystring.aspx sayfası için ASP.NET kodu ile görüntülenir.
Aşağıda vurgulanmış sahte oturum kimliği dinamik parametreleri oluşturmak için kullanılan ASP.NET ve JavaScript kodunu ekleyin:
<head runat="server"> <title>JavaScript dynamic property correlation sample</title> <script type="text/javascript" language="javascript"> <!-- function jScriptQueryString() { var Hidden = document.getElementById("HiddenFieldSessionID"); var sessionId = Hidden.value; window.location = 'JScriptQuery.aspx?CustomQueryString=jScriptQueryString___' + sessionId; } //--> </script> </head> <body> <form id="form1" runat="server"> <div> <a name="QuerystringHyperlink" href="ASPQuery.aspx?CustomQueryString=ASPQueryString___<%= Session.SessionID %>">Dynamic querystring generated by ASP.net</a> <br/> <br/> <a href="javascript:jScriptQueryString()">Dynamic querystring generated by javascript </a> </div> <asp:HiddenField ID="HiddenFieldSessionID" runat="server" /> </form> </body> </html>
Querystring sayfasını sağ tıklayın ve Kodu Görüntüle'yi seçin.
Kod Editörü, Querystring.aspx sayfası için Visual C# kodu ile görüntülenir.
Page_Load yöntemine aşağıda vurgulanmış kodu ekleyin:
public partial class Querystring : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Session.Add("Key", "Value"); HiddenFieldSessionID.Value = Session.SessionID; } }
Üzerinde Dosya menüsünden seçin Tümünü Kaydet.
ASPQuery.aspx Sayfasını, Denetimleri ve Kodu Ekleyin
ASPQuery.aspx sayfasını Web uygulamasına eklemek için
Proje menüsünden Yeni Öğe Ekle'yi seçin.
İçinde Add New Item iletişim kutusunda, seçim Web formu şablonu ve ad ASPQuery.aspxve sonra seçin Ekle.
Üzerinde Dosya menüsünden seçin Tümünü Kaydet.
ASPQuery.aspx sayfasına denetimler eklemek için
Çözüm Gezgini'nde, ASPQuery.aspx'i sağ tıklatın ve Görünüm Tasarımcısı'nı seçin.
Boş bir sayfa görüntülenir.
Araç Kutusu'nda Standart gruptan sayfaya bir Etiket sürükleyin.
Tasarım yüzeyine bir Label denetimi eklenir.
Etiket sayfasında ve Özellikler penceresinde seçin çeşitli kategorisi, değeri değiştirmek (ID) için IndexLabel.
Araç Kutusu'nda Standart gruptan sayfaya bir Köprü sürükleyin.
Tasarım yüzeyine bir HyperLink denetimi eklenir.
Köprü sayfasında ve Özellikler penceresinde seçin Görünüm kategorisi, Hyperlink için değiştirme metin için geri.
Gezinti kategorisinde seçin (...) için NavigationURL özelliği.
URL Seç iletişim kutusu görüntülenir.
Altındaki sayfalar listesinde klasörünün içeriğini, Querystring.aspx öğesini seçin ve'ı Tamam.
Üzerinde Dosya menüsünden seçin Tümünü Kaydet.
ASPQuery.aspx sayfasına arka plan kodu eklemek için
ASPQuery sayfasını sağ tıklayın ve Kodu Görüntüle'yi seçin.
Kod Editörü, ASPQuery.aspx sayfası için arkada Visual C#koduyla görüntülenir.
Page_Load yöntemine aşağıda vurgulanmış kodu ekleyin:
protected void Page_Load(object sender, EventArgs e) { int index; string qstring; string dateportion; string sessionidportion; qstring = Request.QueryString["CustomQueryString"]; index = qstring.IndexOf("___"); dateportion = qstring.Substring(0, index); index += 3; sessionidportion = qstring.Substring(index, qstring.Length - index); if (sessionidportion != Session.SessionID) { Response.StatusCode = 401; IndexLabel.Text = "Failure! Invalid querystring parameter found."; } else { IndexLabel.Text += "Success. Dynamic querystring parameter was found."; } IndexLabel.Text += "<br>\r\n"; }
Üzerinde Dosya menüsünden seçin Tümünü Kaydet.
JScriptQuery.aspx Sayfasını, Denetimleri ve Kodu Ekleyin
JScriptQuery.aspx sayfasını Web uygulamasına eklemek için
Proje menüsünden Yeni Öğe Ekle'yi seçin.
İçinde Add New Item iletişim kutusunda, seçim Web formu şablonu ve ad JScriptQuery.aspxve sonra seçin Ekle.
Üzerinde Dosya menüsünden seçin Tümünü Kaydet.
JScriptQuery.aspx sayfasına denetimler eklemek için
Çözüm Gezgini'nde, JScriptQuery.aspx'i sağ tıklatın ve Görünüm Tasarımcısı'nı seçin.
Boş bir sayfa görüntülenir.
Araç Kutusu'nda Standart gruptan sayfaya bir Etiket sürükleyin.
Tasarım yüzeyine bir Label denetimi eklenir.
Etiket sayfasında ve Özellikler penceresinde seçin çeşitli kategorisi, değeri değiştirmek (ID) için IndexLabel.
Araç Kutusu'nda Standart gruptan sayfaya bir Köprü sürükleyin.
Tasarım yüzeyine bir HyperLink denetimi eklenir.
Köprü sayfasında ve Özellikler penceresinde seçin Görünüm kategorisi, Hyperlink için değiştirme metin için geri.
Gezinti kategorisinde seçin (...) için NavigationURL özelliği.
URL Seç iletişim kutusu görüntülenir.
Altındaki sayfalar listesinde klasörünün içeriğini, Querystring.aspx öğesini seçin ve'ı Tamam.
Üzerinde Dosya menüsünden seçin Tümünü Kaydet.
JScriptQuery.aspx sayfasına arka plan kodu eklemek için
JScriptQuery sayfasını sağ tıklayın ve Kodu Görüntüle'yi seçin.
Kod Editörü, JScriptQuery.aspx sayfası için arkada Visual C#koduyla görüntülenir.
Page_Load yöntemine aşağıda vurgulanmış kodu ekleyin:
protected void Page_Load(object sender, EventArgs e) { int index; string qstring; string dateportion; string sessionidportion; qstring = Request.QueryString["CustomQueryString"]; index = qstring.IndexOf("___"); dateportion = qstring.Substring(0, index); index += 3; sessionidportion = qstring.Substring(index, qstring.Length - index); if (sessionidportion != Session.SessionID) { Response.StatusCode = 401; IndexLabel.Text = "Failure! Invalid querystring parameter found."; } else { IndexLabel.Text += "Success. Dynamic querystring parameter was found."; } IndexLabel.Text += "<br>\r\n"; }
Üzerinde Dosya menüsünden seçin Tümünü Kaydet.
Web Uygulamasını El ile Test Etme
Web uygulamasını el ile test etmek için
İçinde Çözüm Gezgini, Querystring.aspx sağ tıklatın ve sonra'ı Başlangıç sayfası olarak ayarla.
Tarayıcıda Web uygulamasını çalıştırmak için CTRL+F5 tuşuna basın. İlk sayfasını göreceksiniz.
Seçim asp.net tarafından oluşturulan dinamik sorgu dizesi bağlantı.
ASPQuery.aspx sayfası "Başarı" iletisiyle birlikte görüntülenir. Dinamik sorgu dizisi parametresi bulundu."
Seçim geri bağlantı.
Seçim javascript tarafından oluşturulan dinamik sorgu dizesi bağlantı.
JScriptQuery.aspx sayfası "Başarı iletisi ile görüntülenir. Dinamik sorgu dizisi parametresi bulundu.".
Seçim geri bağlantı.
Web uygulamanızın adresini, panoya veya bir not defteri dosyasına kopyalayın. Örneğin, adres aşağıdaki gibi görünebilir:
http://localhost:<BağlantıNoktasıNumarası>/Querystring.aspx.
Bu izlenecek yolda daha sonra bir Web başarım testi oluştururken URL'ye ihtiyacınız olacaktır.
Test Projesi Oluşturma
Test projesi oluşturmak için
Üzerinde Dosya menüsü, Ekle ve sonra Yeni bir proje.
Yeni Proje Ekle iletişim kutusu görüntülenir.
Yüklü Şablonlar altında Visual C# öğesini genişletin ve Test'i seçin.
Şablonların listesinde, Test Projesi'ni seçin.
Ad kutusunda, DynamicParameterSampleTest yazın.
Tamam'ı seçin.
Not
Varsayılan olarak, Visual Studio Ultimate birim test dosyası ekleyecektir.Bu izlenecek yol için birim test dosyasına ihtiyacınız olmayacak.Bu yüzden, dosyayı silebilirsiniz.Dosyaları silmezseniz bu yönergeyi etkilemeyecektir.
Web Performans Testini Kaydetme ve ASPQuery.aspx Sayfası için Dinamik Parametreyi Otomatik Olarak Algılama
Web başarım testini kaydetmek için
Üzerinde Test menüsünden seçin Yeni Test.
Yeni Test Ekle iletişim kutusu görüntülenir.
İçinde Yeni Test Ekle iletişim kutusunda seçin Web başarım testi, test adını DynamicParameterSampleApp.webtestve sonra Tamam.
DynamicParameterSampleApp.webtest olarak adlandırılan yeni Web performans testi dosyası projenize eklenir ve Internet Explorer'ın yeni örneği içinde Web Performans Test Kaydedicisi açılır.
Uyarı
Sonraki yordamın düzgün çalışması için, adımları aşağıda gösterilen sırayla takip etmeniz gerekir.
Tarayıcının adres çubuğunaWeb uygulamasını el ile test etmek için yordamının adımında kopyaladığınız Web uygulamasının adresini yazın veya yapıştırın ve ENTER tuşuna basın.
Not
Web performansını görüntülemek Visual Studio Ultimate başlayan URL'ler test Web Performans Testi Kaydedicisi bu kaydı gibi.
Seçim asp.net tarafından oluşturulan dinamik sorgu dizesi bağlantı.
ASPQuery.aspx sayfası "Başarı" iletisiyle birlikte görüntülenir. Dinamik sorgu dizisi parametresi bulundu."
Seçim geri bağlantı.
Seçim javascript tarafından oluşturulan dinamik sorgu dizesi bağlantı.
JScriptQuery.aspx sayfası Başarı iletisi ile görüntülenir. Dinamik sorgu dizesi parametresi bulunamadı.
Seçim geri bağlantı.
Kaydı durdurmak için durdurmak , Web Performans Testi Kaydedicisi.
İletişim kutusu Detecting dynamic parameters (Dinamik parametreleri algılıyor) iletisini gösterir. Alınan HTTP yanıtlarındaki parametre algılamasınun durumunu gösteren bir ilerleme çubuğu görüntüler.
Ardından, Dinamik Parametreleri Web Test Parametrelerine Yükselt iletişim kutusu görüntülenir.
Prosedürdeki ASPQuery sayfasındaki CustomQueryString'deki dinamik parametre için eklenen özel kod otomatik olarak algılandığı için, iletişim kutusunda listelenir.
Özel JavaScript kodu yordamındaki Querystring.aspx sayfasına eklendiğinden JScriptQuery sayfasındaki CustomQueryString için dinamik parametre otomatik olarak algılanmadı Querystring.aspx sayfasına kod ekleme.
Seçim Tamam Querystring.aspx üzerine eklenen bir ayıklama kuralı eklemek için.
Tam olarak genişletilmiş Querystring.aspx öğesine ilişkin ilk istek ile Web Performans Testi Düzenleyicisi görüntülenir. Eklenen çıkarma kuralını gösterir.
ASPQuery.aspx için ikinci isteği, istek ağacında tam olarak genişletin ve CustomQueryString'ın değerinin çıkarma kuralına bağlı olduğuna dikkat edin.
Yeni kaydedilen Web performans testini kaydetmek için Dosya seçeneğini ve ardından DynamicParameterSampleApp.webtest Kaydet seçeneğini belirleyin.
Algılanmayan Dinamik Parametre Hatasını Üretmek için Web Performans Testini Yürütün
Web başarım testini kayıttan çalmak için
İçinde Web Performans Testi Düzenleyicisi, seçim çalıştırmak Web Performans Test Sonuçları Görüntüleyicisi'ni görüntülemek için araç çubuğunda.
Dördüncü isteğin bir hata ile başarısız olup olmadığına dikkat edin. Dördüncü istek JScriptQuery.aspx sayfası içindir.
Hataya Sebep Olan Dinamik Parametreyi Yalıtın
Kayıttan çalma kaydında hızlı bulu kullanmak için
Web Performans Testi Sonuçları Görüntüleyicisi'nde dördüncü isteği sağ tıklatın. Dördüncü istek dinamik parametre sorunu nedeniyle başarısız olan JScriptQuery.aspx sayfası içindir. Web Testine Git'i seçin.
Vurgulanan JScriptQuery.aspx isteği Web Performans Testi Düzenleyicisi ile görüntülenir.
İstek düğümünü tam olarak genişletin ve CustomQueryString'in "wy0zaykqadkoscuvoiqemofm" kısmının dinamik gibi görünüyor olmasına dikkat edin: " CustomQueryString = jScriptQueryString___wy0zaykqadkoscuvoiqemofm".
Web Performans Test sonuçları görüntüleyiciye dönün ve başarısız olan JScriptQuery.aspx sayfasını seçin.
Seçim talep sekme.
Ham veriyi göster onay kutusunun temizlenmiş olduğunu doğrulayın.
Ad sütununun altında QueryString Parametreleri'ni bulana kadar aşağı kaydırın.
CustomQueryString bilgisini sağ tıklayın ve Hızlı Bul'u seçin.
Bul iletişim kutusunda parametre değerleri Aranan öğesinde görüntülenir.
Bu durumda Web Performans Testi Düzenleyicisi'ne bakarak JScriptQuery.aspx isteğinin CustomQueryString öğesini şu değerin atanmış olduğunu anlarsınız: jScriptQueryString___wy0zaykqadkoscuvoiqemofm ve şüpheli dinamik bölüm "wy0zaykqadkoscuvoiqemofm" öğesidir.
Aranan açılır listesinde, arama dizesinin şüpheli bölümünü kaldırın. Dize "CustomQueryString=jScriptQueryString___" olmalıdır.
Dinamik parametrelere değerleri hataya sahip istekten önce gelen isteklerden biri üzerinde atanır. Bu nedenle, seçeneğini Ara seçin ve onay kutusunu Sonrakini Bul önceki görene kadar Querystring.aspx isteğini vurgulanmış isteği Masası. Sonra seçim yapılacağını Sonrakini Bul üç kez.
Resimde ve daha önce uygulanan JavaScript görebileceðiniz gibi sorgu dizesi parametresi CustomQueryString "jScriptQueryString___" değeri atanır ve birlikte var SessionID'nin döndürülen değerle birleştirilir.
function jScriptQueryString() { var Hidden = document.getElementById("HiddenFieldSessionID"); var sessionId = Hidden.value; window.location = 'JScriptQuery.aspx?CustomQueryString=jScriptQueryString___' + sessionId; }
Şimdi hatanın nerede oluştuğunu ve ayrıca sessionId değerini ayıklamak gerektiğini biliyorsunuz. Ancak, çıkarma değeri yalnızca metindir, bu nedenle SessionId'nin gerçek değerinin görüntülendiği bir dizeyi bulmaya çalışarak hatayı daha da izole etmeniz gerekir. Koda baktığınızda var SessionID'nin HiddenFieldSessionID tarafından döndürülen değere eşit olduğunu görebilirsiniz.
HiddenFieldSessionID değişkenini vurgulayın, sağ tıklatın ve Hızlı Bul'u seçin.
Bul iletişim kutusunda, Ara onay kutusunu temizleyip Geçerli istek'i seçin.
Seçim Sonrakini Bul.
HiddenFieldSessionID'nin ilk eşleşmesi aşağıdaki satırda vurgulanır. Ayrıca, atanmış değeri de görebilirsiniz:
<input type="hidden" name="HiddenFieldSessionID" id="HiddenFieldSessionID" value="0rvcxknlabd30xnbrjtuy11u" />
Döndürülen değerin orijinal Web Başarım Testi kaydındakiyle aynı dize olmadığından emin olun. Bu kayıttan yürütme için, "0rvcxknlabd30xnbrjtuy11u" değerdir ve kayıt, "wy0zaykqadkoscuvoiqemofm" değeridir. Değer özgün kaydın değeriyle eşleşmediği için, hata oluşturulur.
Kaydedilmiş yürütme'den bir ayıklama kuralı eklemek için
Web Test Sonuçları Görüntüleyicisi'nde seçin Kaydedilen sonuç araç çubuğu.
Web performansı testinin orijinal kaydedilen sonuçları DynamicParameterSampleApp[Recorded] başlıklı ayrı bir sekmede görüntülenir.
Zaten seçili değilse, üçüncü isteği seçin. Önceki adımda yalıttığınız Querystringrequest.aspx öğesidir.
Seçim yanıt sekme. Bir önceki yordamda yalıtmış olduğunuz "wy0zaykqadkoscuvoiqemofm" bilgisinin orijinal dinamik parametre değerini aşağı kaydırın ve vurgulayın. Sağ tıklayın ve Ayıklama Kuralı Ekle'yi seçin.
Querystring.aspx isteği içinde seçilen yeni ayıklama kuralı ile Web Performans Testi Düzenleyicisi görüntülenir. Yeni ayıklama kuralı 'param0' değerine atanır.
Microsoft Visual Studio iletişim kutusu parametrenin bağlanacağı ayıklanan metin için bir eşleşme bulunduğu bilgisi ile görüntülenir.
Seçim Evet.
İstekte Bul ve Değiştir iletişim kutusu Aranan açılan listesindeki wy0zaykqadkoscuvoiqemofm ayıklanmış metni ve Değiştir açılan listesindeki {{Param0}} parametresi ile görüntülenir.
Seçim Sonrakini Bul.
JScriptQuery.aspx isteği altındaki QueryString parametresi CustomQueryString=jScriptQueryString___wy0zaykqadkoscuvoiqemofm vurgulanır.
Seçim yerini.
JScriptQuery.aspx isteği altındaki QueryString parametresi yeni bağlam parametresi kullanılarak güncelleştirilir: CustomQueryString=jScriptQueryString___{{Param0}}.
İstek ağacında, saptanan dinamik parametre ile ilişkilendirdiğiniz saptanmamış dinamik parametre arasındaki benzer yapıya dikkat edin.
Ayrıca bkz.
Görevler
Dinamik Parametreler, Web Performans Test Parametreleri'ne Nasıl Yükseltilir
Kavramlar
Web Başarım Test Sonuç Görüntüleyicisi Genel Açıklama