pain.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:hurt 作者: io-digital 项目源码 文件源码
def main(hits, workers, url, timeout):

    global _timeout, durations, result_codes, update_ui_now
    _timeout = timeout
    print ""
    print Fore.CYAN + 'PAIN IS GOOD  v0.0001              ' + Style.RESET_ALL
    print ""
    print '%sHitting: %s%s' % (Style.DIM, Style.NORMAL, url)
    print '%sHits:    %s%s%s' % (Style.DIM, Style.NORMAL, locale.format("%d", hits, grouping=True), Style.NORMAL)
    print '%sWorkers: %s%s%s' % (Style.DIM, Style.NORMAL, locale.format("%d", workers, grouping=True), Style.NORMAL)
    print '%sTimeout: %s%s seconds%s' % (Style.DIM, Style.NORMAL, timeout, Style.NORMAL)

    main_start = time.time()
    print Style.DIM + '\nStarting Workers...' + Style.RESET_ALL,
    sys.stdout.flush()

    for i in range(workers):
        t = Thread(target=do_work)
        t.daemon = True
        t.start()
    print ' Done.'

    print "\n" + Fore.CYAN + "Result Codes:" + Style.NORMAL

    ui = Thread(target=update_ui)
    ui.daemon = True
    ui.start()

    try:
        for i in range(hits):
            q.put(url.strip())

        q.join()

    except KeyboardInterrupt:
        sys.exit(1)

    _update_ui()
    update_ui_now = False

    print ""

    total_seconds = time.time()-main_start

    print "Total time: %.2f seconds." % total_seconds

    if '200 OK' in result_codes:
        print "Successful Requests Per Second: %.2f" % (result_codes['200 OK'] / total_seconds)

    if durations:
        print "Average response: %.2f seconds." % (reduce(lambda x, y: x + y, durations) / len(durations))
        print "Longest Response: %.2f seconds" % max(durations)
        print "Quickest Response: %.2f seconds" % min(durations)

    if elapsed:
        print "Longest Elapsed: %.2f seconds" % max(elapsed)
        print "Quickest Elapsed: %.2f seconds" % min(elapsed)

    print ""
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号