2015年10月13日火曜日

2015/10/10に

PyCon JP 2015に行ってプレゼンしてきた。
名前は『なぜWeb画面自動テストはうまく行かないのか』です
PyconなのにPythonの話ぜんぜんしてないけど、思いのほか反応よかったので、たぶん成功といえると思われる。
ついでに資料はここ

2015年9月30日水曜日

ブラウザテスト環境提供サービスの比較

世の中には便利なものがあって、最近はSeleniumでブラウザを起動するための環境を
手前で用意する必要は無い。
ネットワークの関係か、日本から動作させるといかんせん遅いような気もするが、
それでも十分なサービスが次の3つ。
各メリット、デメリットつきで記述する。

  1.  CrossBrowserTesting
  2. この3つのサービスのうち、一番安定して動作している気がする。ただし、起動できるブラウザの種類が少なく(Androidデフォルトブラウザのテストができない!)、ChromeやFireFoxの最新版も導入されるスピードが遅い。UIもシンプルだが低機能。ほかの2つと違って、テストのステータスを取得するAPIも存在しない。
  3.  BrowserStack
  4. 最新ブラウザに 対応し、直感的でわかりやすいUI、APIを伴っている。チュートリアルもわかりやすい。ただしIPhoneやAndroidの動作がいかんせん不安定。
  5.  SauceLabs
  6. 全てにおいて及第点。 
     
お勧めはSauceLabs。もちろん現時点ではの話。

2015年3月22日日曜日

requestsでurlに同一キーの複数パラメータを付与する方法

pythonのrequestsモジュールはこういうめんどくさい人たちに比べてかなり使い勝手がいい。
でもでも、urlのパラメータをdictで指定する(参考)ため、同一キーのパラメータは指定不可能
だと思っていた。

で、もやもやしている日曜の早朝に、

\  __  /
_ (m) _  ピコーン
   |ミ|
/ `´  \
  ( ゚∀゚)
 ノヽノ |
  < <
ってなって、実際に試してみたら、出来たので、共有がてら。

結論から言うと、配列で渡せばいい。

例)
    query = {
        'hoge': 'hoge1',
        'huga': ['huga1','huga2']
        'fuge': True
    }
    r = requests.get('http://testhost/test.json', params=query)
    orint r.url
    >>u'http://testhost/test.json?hoge=hoge1&huga=huga1&huga=huga2&fuge=True


こんな感じ。
今あるソース全部書き換えたい。。。

2015年2月13日金曜日

Pycharmが素敵すぎる件

Pycharmからnoseを使った単体テストを実行できるので、
日本語の情報がなかったので、備忘録として。

File→setting→tools→Python Integrated Tools→{対象プロジェクト}→Default test runner

ちなみにここからrequirements.txtの場所も指定できる。

また、他のプロジェクトのソースを参照したい場合は

File→setting→project→project Dependencies

から指定出来る


2015年1月12日月曜日

Pythonとスレッド

モジュールの速度改善を行うために、Pythonで行うthread処理について調べることになった。

どうやらJavaみたいにクラスを分割だけではなく、メソッド単位でスレッドかできるらしい。

同時に複数スレッドからlistにpushしたりpopしたりするものも、独自に作成する必要は無く、
いい感じにロックをかけてくれるものもあるらしい

シンプルなものになるとこんな感じ

Pythonって便利。