1.相关的工具涉及的 python 环境都需要部署安装到你对应的环境中,就跟 windows 中需要运行的环境一样,具体如何在 linux 上安装可以自行百度;
2.jenkins 可以在你新建的 jenkins 任务中进行配置,对应你需要运行的 python 脚本路径即可
PS:另外 linux 有自带的 crontab -e 跑定时任务的,相关执行脚本和执行时间也可以在这个里面进行配置
公司不便登 qq,有什么问题 你大概列下吧
之前忘了更新这个帖子了,问题之前已经得到解决了。先说下之前无法显示.py 之前内容的问题,是由于在 linux 中从文本中读取的用例名称中最后都包含\r 结尾,导致在输出的时候.py 会直接覆盖.py 之前的内容,在打印该用例名称之前增加 case_name = case_name.replace('\r','') 过滤掉\r 内容即可正常打印出对应的用例名称.py ,现在已经能够正常在 linux 中跑用例脚本了
这边调试过都能正常读取 txt 里面的数据,脚本如下:
实际打印显示如下:
print case_name+".py"  这个本来应该显示未 testsendSms.py  而实际却显示成了.pytsendSms 了,这个很奇怪啊,我在 linux 上单独试了打印输出效果是好的,这个跟 python 版本应该没关系吧,linux 中安装的 python 版本是 2.7.5 的
这个是取的需执行的测试用例中的名称,因为总的用例目录下面还有子目录,“/” 是用来分割后取出这个用例名称的 
上面的代码格式不对,还是看下面这个截图清晰一点:



执行代码如下
class AllTest:
    def init(self):
        global log, logger, resultPath, on_off
        log = MyLog.get_log()
        logger = log.get_logger()
        resultPath = log.get_report_path()
        on_off = localReadConfig.get_email("on_off")
        #caselist 所有平台的 OP 接口,caselist1 为除 dmp 平台外的所有接口
        self.caseListFile = os.path.join(readConfig.proDir, "caselist1.txt")
        self.caseFile = os.path.join(readConfig.proDir, "testCase")
        # self.caseFile = None
        self.caseList = []
        self.email = MyEmail.get_email()
# 添加需运行用例
    def set_case_list(self):
        fb = open(self.caseListFile)
        for value in fb.readlines():
            data = str(value)
            if data != '' and not data.startswith("#"):
                self.caseList.append(data.replace("\n", ""))
        fb.close()
def set_case_suite(self):
        self.set_case_list()
        test_suite = unittest.TestSuite()
        suite_module = []
for case in self.caseList:
            case_name = case.split("/")[-1]
            print(case_name+".py")
            discover = unittest.defaultTestLoader.discover(self.caseFile, pattern=case_name + '.py', top_level_dir=None)
            suite_module.append(discover)
        print suite_module
        if len(suite_module) > 0:
for suite in suite_module:
                for test_name in suite:
                    test_suite.addTest(test_name)
        else:
            return None
return test_suite
def run(self):
        """
        run test
        :return:
        """
        try:
            suit = self.set_case_suite()
            if suit is not None:
                logger.info("*****TEST START**")
                fp = open(resultPath, 'wb')
                runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='Test Report', description='Test Description')
                runner.run(suit)
            else:
                logger.info("Have no case to test.")
        except Exception as ex:
            logger.error(str(ex))
        finally:
            logger.info("***TEST END******")
            fp.close()
            # send test report by email
            if on_off == 'on':
                self.email.send_email()
            elif on_off == 'off':
                logger.info("Don't send report email.")
            else:
                logger.info("Unknow state.")
if name == 'main':
    obj = AllTest()
    obj.run()
路径这块调试过,应该没有问题,使用的是相对路径,日志都能查看到,就是读取 excel 文件那块好像有问题
现在通过在 windows 和 linux 下的层层代码调试,好像定位到了一个问题,如下图:


我的框架下是把测试数据提取到 excel 中,通过读取 excel 去执行,现在从以上两个图片中的打印日志可以看出,linux 中没有读取到 excel 中的 sheet 文件,是不是 linux 默认不支持读取 excel 文件?还请知道的大神能给与解答,谢谢!
现在遇到了个新问题,就是在 linux 中 python 环境及相关模块已安装好,然后把框架代码及测试脚本也通过 svn 同步到 linux 中的相关目录下。这时候运行脚本后在报告 report 目录中查看运行的结果 显示为空,如下图:
,而同样的脚本在 windows 下运行是正常的,这个还知道是什么问题嘛?谢了
已经试过了 是可以运行的,是不是现在只需要写个脚本,把拉取 svn、获取到对应的 python 执行脚本、运行后提交至 svn 这些操作写在 shell 脚本中,在 jenkins 配置中设置执行该脚本即可
能具体一些吗,谢了 
嗯,现在就是不清楚 linux 上具体该怎么配置
那运行环境还是要在本地啊,如果后续定时任务跑的时候,本机还必须是保持开机状态吗
你这套方案是还需要准备 windows 服务器?
嗯,已经试了很多方法了,还是没什么头绪,现在暂时用的还是抓包的方法,然后拷贝到 jmeter 进行性能测试
已经放了
,另外消息头文件也根据抓包中显示的头文件改了也是不行
fiddler 抓出来的包显示的是这个
,不是 Content-Type = multipart/form-data,刚用你的方法试了下,还是不行

postdata 里面的内容好像不对了
你指的是在哪边勾选?
试过了,也是不行,现在通过运行自动化脚本后在 fiddler 上进行抓包,然后查看请求的 text 内容,请求内容如下:

直接复制到 jmeter 的 body 里面就可以请求成功了,不知道是不是因为参数里面有中文的原因,但是 jmeter 里面我之前也是设置了 utf-8 的模式的
开发接口定义的是个 list 对象,其实也就是 json 串
感谢提醒,已重新修改
我这边 inspector 安装完后报这个错,问下有什么处理方法