【python+selenium】并发执行测试用例

前提:

1.全部的测试用例脚本均放在web_testcase文件夹下

2.生成测试报告的文件HTMLTestRunner_cn.py(转自GitHub - GoverSky/HTMLTestRunner_cn: HTMLTestRunner 汉化版,同时支持python 2和3,增加截图展示功能,失败重试

具体代码如下:


# coding=utf-8

import unittest,os,time

import HTMLTestRunner_cn

import threading

import send_email

import sys

sys.path.append('..')

casepath = os.path.dirname(os.path.abspath('.'))+"/web_testcase"

if not os.path.exists(casepath):

    print("测试用例需放到‘case’文件目录下")

    os.mkdir(casepath)

reportpath = os.path.dirname(os.path.abspath('.'))+"/result/report"

if not os.path.exists(reportpath): os.mkdir(reportpath)

# 确定测试用例以及测试报告所在文件夹

def allcase():

    discover = unittest.defaultTestLoader.discover(casepath,

                                                    pattern = "test*.py",

                                                    top_level_dir= None)

    return discover

# 获取全部测试用例文件

def runcase(suite):

    current_time = time.strftime("%Y-%m-%d-%H-%M")

    report_name =  current_time + "_Test_Result.html"

    htmlreportpath = os.path.join(reportpath,report_name)

    fp = open(htmlreportpath,"wb")

    proclist=[]

    s=0

    for i in suite:

        runner = HTMLTestRunner_cn.HTMLTestRunner(title="测试报告"+ str(s+1),

                                                description = '并发执行测试用例:' ,

                                                stream = fp,

                                                verbosity=2,

                                                retry=1,

                                                save_last_try=True)

        proc = threading.Thread(target=runner.run,args=(i,))

        proclist.append(proc)

        s=s+1

    for proc in proclist:

        proc.start()

    for proc in proclist:

        proc.join()

    fp.close()

    send_email.send_email(htmlreportpath)

if __name__ == "__main__":

    runtmp = allcase()

    runcase(runtmp)


上述代码,虽然能减少测试用例运行时间且成功的执行并生成测试报告,但是仍有不足之处:

1.生成的测试报告页面,每个测试用例文件均分开显示(如果可以将全部测试)

2.命令行仅打印出了某个测试用例文件中测试用例的执行结果,其他的均没有在cmd窗口显示测试结果(未知原因)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容