1

Web パフォーマンスとロード テスト プロジェクトを使用して、Visual Studio 2012 から WCF サービスをロード テストしようとしています。以下に示すように単体テスト ファイルを追加し、負荷テストで実行します。私のテストオブジェクトに画像バイト[]を設定することを除いて、すべてうまくいくようです。

単体テスト

    [TestMethod, TestCategory("WCF - Primary Tests")]
    public void EventItem_Insert()
    {
        //Arrange
        var service = new EventServiceReference.ServiceContractClient();
        var item = UnitTestHelpers.EventItemFactory(Guid.NewGuid(), Guid.NewGuid());
        Debug.WriteLine(item.Data.Length.ToString());

        //Act
        Guid pk = service.SaveEventItem(item);

        //Assert
        Assert.AreNotEqual(Guid.Empty, pk, "The key returned is empty");
    }

EventItemFactory から画像読み込みルーチンを呼び出すスニペット。

EventItem.Data = (byte[])LoadTestImageFromProject();

問題のあるコード。これは、テスト エクスプローラーから単体テストを実行すると機能しますが、ロード テストから呼び出すと無効なパラメーターをスローします。

    public static byte[] LoadTestImageFromProject()
    {
        FileInfo fileInfo = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location);
        string file = Path.Combine(fileInfo.DirectoryName, @"Assets\bg.JPG");

        Bitmap bmp = new Bitmap(file);

        ImageConverter converter = new ImageConverter();
        byte[] byteArray = (byte[])converter.ConvertTo(bmp, typeof(byte[]));

        return byteArray;
    }       

助けてくれてありがとう。

4

1 に答える 1

0

負荷テスト中にプロジェクトからファイルを参照する方法がわかりませんでしたが、良い回避策が見つかりました。

画像をリソース ファイルに追加したところ、完全に機能しました。

これは、仮想ユーザーがテストでどのように処理されるかに関係しており、リソース ファイルは利用できますが、プロジェクトの成果物は利用できません。

于 2013-08-31T17:03:25.777 に答える