田中ブログ

さいたまに住んでいる男です。仕事はSESでプログラムを書いてることが多いです。聖地巡礼、日々の生活、技術的なことを書いていこうと思います。

JMeterで一定時間・一定の負荷をかける

JMeterを触ることがあったのでメモ。

例えば、1分間に30リクエストを10分間流し、ついでにリクエストも3種類くらいあるようなとき用の内容になります。
方法として以下の2つが思い浮かびました。

①定数スループットタイマーを利用する
②スレッドをたくさん立てる

後者は、定数スループットタイマーを知らないときに考えていたものなので、①がオーソドックスな方なのかなと思いました。

①定数スループットタイマーを利用する

JMeterの部品の値を以下の役割で利用しました。

  • スレッドグループのループ回数 → 10分流すことを実現するために設定
  • 定数スループットタイマー → 1分間30リクエストを実現するために設定

jmxの構成だと以下のような感じ(記憶で書いているので誤記ってたらすみません。)

スレッドグループ ※ループ回数100で設定。スレッド数での調整でも。
  - コントローラ(ランダム実行)
    - サンプラーA
    - サンプラーB
    - サンプラーC
  - スループットタイマー ※分間30リクエストで設定

②スレッドをたくさん立てる

これはJMeterの実行でリソース使いすぎるのではという話もあるがどうなのか?
JConsoleというので、JMeterのスレッド数を見てたけど使われたスレッドは破棄されていったように見えるが。。

jmxの構成は以下のような感じ。

スレッドグループA ※スレッド数100、RumpUpPeriod 600秒
  - サンプラーA
スレッドグループB ※スレッド数100、RumpUpPeriod 600秒
  - サンプラーB
スレッドグループC ※スレッド数100、RumpUpPeriod 600秒
  - サンプラーC

スレッドグループの開始タイミングを遅らせれば、3種類のリクエストが飛ばされるタイミングもずらすことができるだろう。


以上

GoToトラベル 伊香保温泉へ一人旅

タイトルの通り、久しぶりに一人旅をしてきました。

夏でそんなに歩けないかなと思って、とりあえず旅館に籠ろうと思い伊香保温泉を目的地としました。

事前準備

で、タイトルの通りGoToトラベルキャンペーンを利用しました。ネットで調べても中々ピンとこなかったのですが、どうやらホテルの宿泊費は35%引きとなりそうでした。次に35%引きといわれてもどうすれば適用されるのか?とういところになったのですが、予約サイトにより手続きが結構変わりそうでした。自分は楽天トラベルを利用して予約したのですが、

①クーポンを取得

②予約時にクーポンを選択

という感じでした。①をやらないと割引されないので注意ですね。古久家旅館の牛のコースを申し込んだのですが、23,000円くらいの料金が15,000ちょっとくらいになったのでかなり割安感がありました!

伊香保温泉へ

まずは、渋川駅まで電車で移動。今回は駅のホームで少し気になっていた、特急草津号を利用しました。特急草津号は、車内で特急券を購入することで事前に購入することなく利用できました。特急券の購入も、渋川駅の改札もSuicaに対応しており、乗車などは非常に楽でした。

渋川駅についたら、数分後に出発するバスが止まっているのでそれに乗り、伊香保へ。バスは石段前まで行ってくれたので、石段前で降車しました。

f:id:tanaka653:20200822223251j:plain

伊香保

かなり暑かったのですが、伊香保に来たので、石段を登ります。道のわきには色々な店があり、射的のお店や、お土産屋、昔ながらの駄菓子屋などもあり、いい雰囲気です。

お昼ご飯は、大澤屋さんで水沢うどんを食しました。

f:id:tanaka653:20200822223419j:plain

その後、とりあえず階段の最上段までのぼりました。一番上には伊香保神社があります。

f:id:tanaka653:20200822223450j:plain

f:id:tanaka653:20200822223533j:plain

そして、疲れたので旅館へ。少し迷ったけど到着。ちゃんとした温泉旅館にくるのが久々でしたが、ロビーもいい感じ。

部屋もザ旅館という感じの部屋でいい感じ。匂いも旅館独特のにおいがしてよかったです。

 ▼部屋の写真まともに撮ってなかった。

f:id:tanaka653:20200822223732j:plain

温泉もいい感じの温度、露天風呂もいい雰囲気で癒されました!

そして晩御飯。旅館の料理も久々に食べたけど、めっちゃうまい。料理と一緒に飲むお酒もめっちゃうまい。泊まりに来た価値がありました!朝ごはんもおいしく、、、歳のせいもあるのか旅館のごはんが噛み合うようになってきたのかもしれない。

 ▼これから色々運ばれてくる

f:id:tanaka653:20200822223815j:plain

伊香保(夜)

直前でググって少し気になったので夜の伊香保も散策しました。各温泉街に行って思うのは、怪しい雰囲気のお店があるなというところです。調べる中で気になったのが、銀映という劇場です。劇場といっても、ただの劇場でなくストリップ劇場である。

ネットで情報を見ると熟された方・アジア系の方といった情報があり、葛藤がありましたが旅館の晩御飯に満足しすぎて、突撃してみました。。。

劇場の前まで行くと、、、コロナの影響で休みになっているようでした。ちょっと安堵しました。笑 外観を見れただけでよしとします。

f:id:tanaka653:20200822223934j:plain

銀映までの道中、狭い路地に外国人がいるスナックが営業しており、これが連れ出し?系のお店なのかな?と思いましたが、店の前を通るのみとしました。こういう路地は緊張感があるな。

あとはおとなしく旅館に戻り寝ました。

翌朝散歩

朝方は涼しくなるかなと思い、改めて伊香保神社、河鹿橋まで歩きました。

橋は良く紹介されている、紅葉のライトアップのタイミングだと凄まじくきれいなんだろうなと思いました。

あと、すぐそばに飲泉。クソまずいが体験としては良かったかな。

 ▼伊香保神社

f:id:tanaka653:20200822224037j:plain

 ▼伊香保神社の裏の道を通って河鹿橋へ

f:id:tanaka653:20200822224117j:plain

▼河鹿橋。紅葉の季節はめちゃくちゃ映えそうである。

f:id:tanaka653:20200822224200j:plain

感想

旅館が温泉・食事どちらも非常によかったので、改めて温泉地への旅もいいものだと思いました。ビジホ以外もいいものですね。

 

以上

リードタイムアウトや接続タイムアウト(コネクションタイムアウト)の試験方法メモ

リードタイムアウトや接続タイムアウト(コネクションタイムアウト)の試験方法を間が開くたびに忘れてしまうので備忘のために書きます。

※環境によってはダメなこともあるとは思いますがご容赦を。

 

リードタイムアウト

リクエストするサーバー側でsleepなどを仕込んで、リードタイムアウトの時間までにレスポンスを返さなければ発生させることができる。

モックのサーバーとかを使ってる場合、レスポンスを返すまでの遅延時間を設定できることも。(wiremockというものでは可能)

 

接続タイムアウト(コネクションタイムアウト

ホストのところで、例えば、10.255.255.1といった自分の環境にて繋がらないIPアドレスを指定することで発生させることができる。。

適当なホスト(xxxxx.com)だとunknow host exceptionだったり、接続先のアプリを落としていたりしてもAPサーバがいれば500がかえってきたりすることもあるので注意。(環境でいろいろかわると思いますが。)

 

以上

RestTemplateのHttpServerErrorExceptionやHttpClientErrorExceptionをthrowする

RestTemplateのHttpServerErrorExceptionやHttpClientErrorExceptionをthrowする方法を備忘も兼ねて書きます。

発端としては、JUnitにて、ExceptionHandlerで上記が発生したときのテストコードを書こうとしたときに、newしてthrowしてもハンドリング処理が動かなかったためです。

対応策

HttpServerErrorExceptionクラスを眺めていたのですが、ネストされたクラスとして、HttpServerErrorException.InternalServerError などがあるようでした。

これらのネストされたクラスの例外を作成して、throwすることで無事ハンドリング処理が動きました。

作成方法ですが、以下のcreateメソッドをコールして作成します。

HttpServerErrorException.create(...)

とりあえずのJUnitなので引数の値は適当な値を入れましたが、無事期待通りにthrowできました。HttpClientErrorExceptionも同様にcreateメソッドがあるのでそちらで作成できました。

以上

ヒメタニシが体調が悪そう(ひっくり返る、殻にこもる)場合の対処について

ヒメタニシが体調が悪そう(ひっくり返る、殻にこもる)場合の対処について書いてみます。(旅に出たりできないので、アクアリウムも趣味となりつつあります。)

自分は小さめの水槽で、環境もひとそれぞれ違うと思うので参考までに。

 

事象

メダカなどを飼っている水槽に、ヒメタニシを入れると、最初のころは動き回ってくれてるのですが、2,3日後には殻にこもって固まってりしてしまうことが続いてました。

水取り換えしたり、別の環境(適当な瓶)とかに入れると復活してくれたりしていました。特に後者の別の環境では、顕著に復活していました。

 

対処

ネットで調べてみて怪しそうと思ったのが水質でした。水取り換えは3日に1度くらいの頻度で行っていたので、水が汚れていってそれを放置で水質悪化というわけではないと思い、環境面で考えるとソイルと流木あたりが怪しいと思いました。

ネット情報だと、これらが水質を酸性に傾けてそう。そこで水槽にカキガラを投入してみました。すると効果てきめんで、2,3日経ってもいままでのように固まったり、殻にずっとこもらなくなり、しっかり動き回ってくれるようになりました!

カキガラを入れてから、今まで見かけてなかった謎のスネイルも現れ。。。別の課題は出そうですが、ひとまずタニシは元気に活動してくれそうです。

 

追記

その後、やはりタニシが殻にこもってしまうことがあり、どうやら決定的な対応方法というわけではなさそうです。今は、ソイルが入ってない入れ物に移し替えていますが、そちらだと大体活動しているのですが、やはりちょくちょく殻にこもります。

個体差とかが結構あるのだろうか・・・?

 

以上

IEで開発者ツール(F12)を表示しているとログインのセッションが維持されない

IEで開発者ツール(F12)を表示しているとログインのセッションが維持されない件。

 

ログイン機能を持つアプリ作成時に発生しました。

事象的には、ログイン→リダイレクト→メニュー画面と遷移した際に、メニュー画面から他画面への操作を行うと再度ログイン画面を飛ばされてしまう感じ。

 

原因

原因としては、bootstrapのmin.jsをローカルに落として使っていたのですが、この中に書かれているsourcemapのmin.js.mapのファイルがなかったのが原因だった模様。

対応

min.jsをいじってsourcemapの行を削除したところ、ログイン状態が維持されるようにないりました。

 

以上

客先常駐が多い会社をやめ、客先常駐をメインとした会社に移る

今回は、「客先常駐が多い会社をやめ、客先常駐をメインとした会社に移る」話です。

やめた話

前の会社は数年前に入社しました。客先常駐がメインという会社ではなかったのですが所属となった部署が、客先常駐の割合が多い部署でした。で自分も例外ではなく自社を離れ客先常駐(SES契約などで)をする流れとなりました。

 そうなるとよくある話の帰属意識の低下が起きます。で、経営陣とは分かり合えないところなのでしょうが、会社の人々は帰属意識を高めようと以下のようイベント事を企画します。

  • 月一の帰社
  • 部署の飲み会
  • 社内イベントの参加

個人的には、ほぼ自社にいない人間からすると上記のようなものは面倒ごとでしかなかったんですよね。。。一緒に仕事をした同僚がいたりするとちょっとは変わるのでしょうが、入社後すぐに客先常駐となったうえで上記のようなものはアウェーな場所に行く感じになるのです。帰属意識を高めさせたいのであるなら、自社で仕事をさせるのがまず先じゃないの?と思います。

また、以下の点も気になっていました。

  • 毎週の作業・進捗報告を細かくもとめられる。多分燃えても手伝ってもらえないけど。
  • 評価面談などの場があるが、上司と仕事をしておらずどうやって評価してるのか謎

このあたりも面倒に感じてしまうところですが(会社に所属してる以上しょうがないんだろうけど)、面談する上司が一度も仕事したことないし、年間10分も話してないんじゃないかとなるとどんな感じで評価されるのか非常に謎なところです。

そして沸点を超える出来事がありやめるに至りました。ずっと客先常駐だったので引き止められても引き取まる要素もなく、固い意志で退職しました。

 

SESなどをメインとした会社に移った話

上記で客先常駐で文句を書いている感じですが、SESなどをメインとした会社に入社しました。個人的には客先常駐は全然いやではないのです。以下の点で客先常駐はいいなと思っています。(現場によるのかもだけど)

  • 新しい技術に触れれる可能性がある
  • 客先のリーダーの仕事から色々盗める

ある程度スキルがマッチすれば自社ではやらないような新しめのことをしている現場にアサインされる可能性があると思います。自分はJavaが強味として現場に行ったけど、pythonやらAWSやらNo SQLにも触れることができたので。

また、一部上場の会社とかに行くと若いけどすごい仕事ができるリーダーがいたりしてとても刺激になります。自分ももっと頑張らないと!と感じたりしてました。

そして、新しい会社では帰社や評価の問題も改善されるのかなと思っています。

  • 簡単な作業報告書を月に1回出す感じ。(現場によるんだろうけど)
  • 自社のやりとりも営業さんが自分のところにきて簡単に会話するだけ
  • 給与が自分の作業単価ベースとなる(単価の7割以上)

まだ、始まったばかりですが自社向けの作業も楽になり(がっつり干渉されない)、給与も明確で、自分が頑張りお客さんから評価され単価が上がれば自分の給与に帰ってくる、といった感じで特に不満はない状態。(社員を客先常駐させてる会社は、単価も評価基準にしたらいいのにと思うんすけどね。)

もちろん勤怠が悪かったり、単価が下がればそれも給与に直結しますが、それは自己責任ですからそれはそれで納得できますからね。

 

上記のように、客先常駐という形ですが所属する会社は移ってみました。期待と不安はありますが頑張ろうと思います。

 

以上