投稿

JMeterで変数を扱う

イメージ
JMeterで変数を扱う場合、以下の2通りを試した。 ①インクリメント方式 ②固定データを使う場合 ①インクリメント方式 シリアルな番号を順番に適用したい場合「カウンタ」を使いました。 全てのスレッドグループに適用したいので、Test Planの直下に配置します。 Name→変数名 StartingValue→初期値 Increment→加算ステップ Maximum value→最大値 Exported Variable Name→変数 ②固定データを使う場合 こんな決まったデータを順番に適用したい場合、csvファイルとして用意しておきます。 ①と同じくAdd→Config Elementより、CSV Data Set Configを選択します。 Filename欄でファイルを選択します。 Variable Name→変数名となります。 Delimiter→','カンマでcsvを作成しました。 ①、②で作成した変数を今回はヘッダに追加しました。 実行結果を見ると、ちゃんと変数に値が入っているのが確認できました。 参考 JMeter テストでカウンタを使用する方法 JMeterで動的な値を扱う

[Azure]AppServiceへのデプロイをストレージBlob経由でできるか?

Webアプリは.NetFrameworkなのでビルドは以下の通り。 $msbuild = Resolve-Path "${env:ProgramFiles(x86)}\Microsoft Visual Studio\*\*\MSBuild\*\bin\msbuild.exe" $msbuild = $msbuild[0] $msbuild {projectFilePath} /t:Build /p:DeployOnBuild=true /p:Configuration=Release /p:RestorePackages=true /p:PublishUrl="./Publish" /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True .Netの場合は dotnet build --configuration release dotnet publish --configuration release --output ./Publish モジュールができたらあとは、ストレージにアップして、どうにかAppServiceへデプロイする。  参考 Run From Package: a new way to deploy your Azure Web Apps and Function Apps #84 Blobにzipファイルをアップする。 共有リンクを取得する。 AppServiceのAppSettingにWEBSITE_RUN_FROM_PACKAGE=<BlobURL>を追加する。 AppSeriviceを再起動する。 ZIP パッケージから Azure App Service のアプリを直接実行する   Deploying App Services with ‘Run From Package’, Azure Storage, and Azure Pipelines

c# .netframework WebAPIで呼び出し元をNLogする

APIで呼び出し元を出力する必要があったのでメモしておく。 System.Collectionsは、nugetでインストールする必要があるかもしれない。 dynamicはstringでキャストしないとExceptionを吐く。 using System.Collections.Generic; [RoutePrefix("api")] public class ApiTestController : ApiController { private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); private string httpContext = "MS_HttpContext"; /// /// ログイン /// /// For Debug [HttpGet] [Route(nameof(Index))] public Dictionary<string, string> Index() { logger.Info("=== Index Controller START"); dynamic ctx = this.Request.Properties[httpContext]; if (ctx != null) { logger.Info("UserHostAddress: {0}", (string)ctx.Request.UserHostAddress); logger.Info("UrlReferrer {0}", (string)ctx.Request.UrlReferrer); Dictionary<string, string> dict = new ...

Windows PowerShell csvファイル文字列置換

csvファイルの一覧が記載されたファイルがある。 このcsvファイルの中身を次々に置換していくスクリプトを作成する。  # デバッグ表示 $DebugPreference = "Continue" # $DebugPreference = "SilentlyContinue" # ##### ログファイル設定 # ログファイル名取得 $SCRIPT_NAME = $myInvocation.MyCommand.name; $SCRIPT_NAME_WITHOUT_EXT = [System.IO.Path]::GetFileNameWithoutExtension($SCRIPT_NAME); Write-Debug "MyInvocation.MyCommand.Name: $SCRIPT_NAME_WITHOUT_EXT" # ログディレクトリ設定 $LogPath = ".\Log"                            # ログの出力先 # ログフォルダーがなかったら作成 if( -not (Test-Path $LogPath) ) {     New-Item $LogPath -Type Directory } # ログファイル名設定(XXXX_YYYY-MM-DD.log) $Now = Get-Date $LogFile = $SCRIPT_NAME_WITHOUT_EXT + "_" +$Now.ToString("yyyy-MM-dd") + ".log" $LogFileName = Join-Path $LogPath $LogFile # ##### ログ出力関数 function Write_Log {     param(         $LogString     )          $Now...

C++の古いプロジェクトのビルドでerror MIDL2311 : statements outside library block are illegal in mktyplib compatability mode

IDEはVS2019。 ビルドすると、 error MIDL2311 : statements outside library block are illegal in mktyplib compatability mode が発生する。 (対応方法) ***.vcxprojファイル内の <MkTypLibCompatible>true</MkTypLibCompatible> を全て <MkTypLibCompatible>false</MkTypLibCompatible> にする。 参考 Error MIDL2311 : statements outside library block are illegal in mktyplib compatability mode

Dotnet FrameworkでSystem.Diagnostics.ConsoleTraceListenerを使う

Console Applicationを作成する。 App.configは以下の通り。 <configuration > <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> </startup> <system.diagnostics> <sources> <source name="TraceTest" switchName="sourceSwitch" switchType="System.Diagnostics.SourceSwitch"> <listeners> <add name="Console"/> <add name="myListener"/> <remove name="Default"/> </listeners> </source> </sources> <switches> <!--<add name="sourceSwitch" value="Warning"/>--> <!--<add name="sourceSwitch" value="Information"/>--> <add name="sourceSwitch" value="Verbose"/> </switches> <sharedListeners> <add name="myListener" type="System.Diagnostics.TextWriterTraceL...

SQL ServerでDBを作成しデータをinsertしたメモ

SQLサーバにデータベースを作成してデータを挿入してみた。 これをファイルにして、バッチで実行させてみたい。   -- Create Database IF NOT EXISTS (select * from master..sysdatabases where name='DB_CHK') CREATE DATABASE DB_TEMP COLLATE Japanese_BIN2 GO USE DB_CHK; -- select object_id('Student'); -- create table if object_id('Student') is null CREATE TABLE Student ( StudentGPAID INT NOT NULL IDENTITY(1,1) PRIMARY KEY, GradeYear TINYINT NOT NULL, Semester NVARCHAR(20) NOT NULL, GradeScore DECIMAL(5,2) NULL, GPA CHAR(1) NULL, CompletedFlag BIT NOT NULL DEFAULT (0) ) go -- Auto rollback when happened Error. SET XACT_ABORT ON begin transaction begin try insert into Student ( GradeYear, Semester, GradeScore, GPA, CompletedFlag) values ( 19, '3学期', 1.01, 'A', 1); insert into Student ( GradeYear, Semester, GradeScore, GPA, CompletedFlag) values ( 20, '2学期', 2.02, 'B', 0); insert into Student ( GradeYear, Semester, Gra...

MSbuildコマンドをバッチファイルで実行し、ログを出力する(Visual Studio2019 Community)

JenkinsでMSBuildを実行するためにバッチファイルを作成したのでメモしておく。 引数には、「ソリューション構成」を設定。 エラーログを日付を入れたファイルで出力させる。 @echo off rem ログファイルに日付を入れる set dt1=%date:~0,4%%date:~5,2%%date:~8,2% set tm1=%time:~0,2%%time:~3,2%%time:~6,2% set fname1=%dt1%_%tm1% rem set WORK_DIR=%~dp0 set WORK_DIR=F:\svn\trunk pushd %WORK_DIR% rem ログ出力先 set OUTPUTS=%WORK_DIR%\..\publish rem ソリューション構成の設定(引数設定) set CONFIG=%~1 if "%CONFIG%"=="" set CONFIG=Release If not exist %OUTPUTS%\%CONFIG% mkdir -p %OUTPUTS%\%CONFIG% SET MSBuildPath=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\ SET BuildPath=F:\svn\trunk "%MSBuildPath%\MSBuild.exe" "%BuildPath%\WebMVC.csproj" ^ /t:WebPublish /p:Configuration=%CONFIG% ^ /p:WebPublishMethod=FileSystem ^ /p:publishUrl=%OUTPUTS%\%CONFIG% ^ -fl1 -fl2 -fl3 ^ -flp2:logfile=%OUTPUTS%\JustErrors-%dt1%_%tm1%.log;errorsonly ^ -flp3:logfile=%OUTPUTS%\JustWarnings-%dt1%_%tm1%.log;warningsonly if %errorlevel% neq 0 ( ech...

CentOS7 on VagrantにSubversionをインストール

 やった手順を書こうと思ったが、このサイトの通り1ミリも違いがないので、このサイトを忘れないようにリンクだけ貼っとく。 (参考サイト) VMwareのCentOSをSVNサーバにして、開発環境のバージョン管理用に構築してみた svn command line tool  【svn】基本コマンド  

postman + newman + jenkins on Windows10

イメージ
 webapiをpostmanとnewmanを使ってテストし、Jenkinsで自動化できるか確認した。  newmanのコマンドは、以下の通り。 F:\etc>newman run gettest.postman_collection.json -e local.postman_environment.json newman gettest → getValues-0   GET http://localhost:64587/api/values?id=0 [304 Not Modified, 295B, 106ms]   1. Status code is 200 → getValues-1   GET http://localhost:64587/api/values?id=1 [200 OK, 358B, 7ms]   √  Status code is 200 → postValues-title-ok   POST http://localhost:64587/api/values [200 OK, 355B, 8ms]   √  Status code is 200 → postValues-title-non   POST http://localhost:64587/api/values [304 Not Modified, 295B, 44ms]   2. Status code is 200 ┌─────────────────────────┬───────────────────┬──────────────────┐ │                         │          executed │       ...

.Net FrameworkをIISで動かそうとすると404エラーが発生する

イメージ
理由が全然わからなかったが、このサイト( WCF サービスで HTTP 404.17 エラー )を見つけてやっと解決したのでメモしておく。 Windows10環境では以下のように「Windowsの機能の有効化」で「HTTPアクティブ化」にチェックを入れる。 これでOK。

web.configにNlog設定を踏襲し、変換構文を使ってソリューション構成ごとに異なるログ設定をする

アクション 最初に以下を宣言する。 これで、ソースコードにはログを貼るだけでよくなる。   <configSections>     <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>   </configSections> あとは、targetとruleを付けるだけ。 全体像は以下の通り。 Web.config <configuration>   <configSections>     <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>   </configSections>   <nlog>     <targets>       <target name="logFile" type="File" fileName="./logs/${shortdate}-debug.log" encoding="UTF-8"         archiveFileName="${basedir}/logs/archives/archive.${shortdate}-debug.log" archiveEvery="Day" archiveNumbering="Rolling" maxArchiveFiles="365"         layout="${longdate},${uppercase:${level}},${callsite},${callsite-linenumber},${message}"/>       <!--       <target name=...

シンプルにMSbuildコマンドを使う(Visual Studio2019 Community)

MSBuildを使ってビルドしたのでメモる。 ■ MSBuildのパスは以下の通り。 ↓をWindowsの環境変数に登録する。 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin ■ Release Build msbuild /p:Configuration=Release /t:Rebuild     ■ Publish Build SET MSBuildPath=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\ SET BuildPath=F:\work\DotNetFramework\WebMVC   "%MSBuildPath%\MSBuild.exe" "%BuildPath%\WebMVC.csproj" /t:Build /p:DeployOnBuild=true /p:Configuration=Release /p:TargetFramework=v4.7.2 /p:PublishProfile=FolderProfile /p:RestorePackages=false /p:SkipPostSharp=true   Publish Build の出力先 \WebMVC\Properties\PublishProfiles \ FolderProfile.pubxml を確認すると、 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">   <PropertyGroup>     <DeleteExistingFiles>False</DeleteExistingFiles>     <ExcludeApp_Data>False</ExcludeApp_Data...

ソリューション構成ごとにconfigファイルを作成する

イメージ
.NetFrameworkのソリューション構成ごとにweb.configを作成し、そのconfigファイルの内容を反映させる。 ちょっと、つまずいたのでメモしておく。 (アクション) 1. 新しいソリューション構成を作成する。 2. web.configを作成する。 3. 変換構文の作成 4. .csprojファイルの編集 1. 新しいソリューション構成の作成 Visual Studioの「ビルド」→「構成マネージャー」→「アクティブソリューション構成」→「新規作成」 で、新しいソリューション構成を作成する。 2. web.configの作成 Web.configを右クリックして「Config変換を追加」をクリックすると、先ほど追加した新しいソリューション構成のWeb.configが追加される。 3. 変換構文の作成 前回のブログ を参考に作成する。 <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">     <connectionStrings>         <add name="ConnectionString"           connectionString="Data Source=192.168.44.10.1\SQLEXPRESS;Initial Catalog=AWS_DB;;Connect Timeout=60;Persist Security Info=False; User ID=hoge;Password=1234"           xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>     </connectionStrings>     <appSettings>      ...

web.config debug/releaseの内容を変換構文を使って切り替える

イメージ
.Net Framework のWeb.Debug .config, Web.Release.config の内容を「変換構文」を使って、構成 (Debug/Release) の切り替えによって変えることができたのでメモしておく。   Release 構成でのビルドでは、 Web.config に記載されている要素のうち、以下の3要素を変換構文を使って変更した。 system.web connectionStrings appSettings   1. system.web   compilation debug=true の削除( Release 時は、デバッグ情報は不要) ●Web.configの記述 <system.web>     <compilation debug="true" targetFramework="4.7.2" />     <httpRuntime targetFramework="4.7.2" /> </system.web> 上記から、「debug="true"」を削除するには、 RemoveAttributes を使う。 ●Web.Release.config <system.web>     <!-- Disable Debug Mode -->     <compilation xdt:Transform="RemoveAttributes(debug)" /> </system.web> 2. connectionStrings   DBの接続情報を変更する。 ( Debug / Release時は普通環境変わるだろう ) ●Web.configの記述 <connectionStrings>     <add name="ConnectionString"         connectionString="Data So...

Nlog.configをDebug / Rlease構成で使い分ける

イメージ
ビルド時のソリューション構成で利用するNlog.configを使い分けたい。 最終的に作った構成をメモしておく。 (環境) IDE: Visual Studio Community 2019 Framework: .NetFramework4.5 本当は、 ${buildConfiguration}を使いたいが Nlog に不具合があり、まだ治っていない。 ※(参照: Filter by Build Configuration #1929 ) よって、プリプロセッサを使ってコードに埋め込む。 プロジェクト構成は以下の通り。 NLog.Debug.config NLog.Release.config を使う。 ※NLog.configは存在しているが使わない。 Global.asax.csにNlog.configの読み込みコードを埋め込む。 Global.asax.cs using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; namespace WebMVC {     public class MvcApplication : HttpApplication     {         protected void Application_Start()         {             AreaRegistration.RegisterAllAreas();             FilterConfig.RegisterGlobalFilt...