python执行报错 configparser.NoSectionError: No section: 'section_1'

场景:请求获取验证码模块regVC.py读取配置文件config.ini时,regVC.py模块单独执行正常,但通过run_all.py模块批量执行时报错,找不到section

解决办法:配置文件路径需写绝对路径

config.ini文件如下:

regVC.py模块代码如下:

 1 import requests
 2 import configparser
 3 import unittest
 4 from Case.readexcel import ExcelData
 5 import json
 6
 7 class registerVerifyCode(unittest.TestCase):
 8     def setUp(self):
 9         self.Purl = "/api/register/getVerifyCode"
10         #取配置文件内数据
11         self.config = configparser.ConfigParser()
12         self.text = self.config.read("F:\\Case\\config.ini")      #这里要写配置文件的绝对路径
13         self.section = self.config.sections()
14         self.option = self.config.options("section_1")
15         self.item = self.config.items("section_1")
16         self.url = self.config.items("section_1")[1][1]+self.Purl
17         self.headers = self.config.items("section_1")[0][1]
18         #self.headers由str类型转化为字典类型
19         self.header = eval(self.headers)
20         self.data_path = self.config.items("section_1")[2][1]
21         self.sheetname = "注册验证码获取"
22         self.data = ExcelData(self.data_path,self.sheetname).readExcel()
23         print(self.url)
24         print(self.data)
25
26     def test_reVC(self):
27         for a in self.data:
28             for b in a:
29                 print(a)
30                 print(b)
31                 par = {"data":{
32                     b:a[b]
33                 }
34                 }
35                 print(par)
36                 par_json = json.dumps(par)
37                 res = requests.post(self.url,par_json,headers=self.header)
38                 print(res.text)
39                 if "手机号码已注册" in res.text:
40                     print("该手机号码已注册")
41                 if "请求注册验证码成功" in res.text:
42                     print("请求注册验证码成功")
43
44 if __name__ == ‘__main__‘:
45    unittest.main()

run_all.py代码如下:

 1 import unittest
 2
 3 def all_case():
 4     case_dir = "F:\\KEJINSUO_interface\\Case\\"
 5     testCase = unittest.TestSuite()
 6     discover = unittest.defaultTestLoader.discover(case_dir, pattern = "reg*.py", top_level_dir = None)
 7     testCase.addTest(discover)
 8     return testCase
 9
10 if __name__ == ‘__main__‘:
11     runner = unittest.TextTestRunner()
12     runner.run(all_case())

python执行报错 configparser.NoSectionError: No section: 'section_1'

原文地址:https://www.cnblogs.com/kakaln/p/8193292.html

时间: 2024-10-11 11:10:01

python执行报错 configparser.NoSectionError: No section: 'section_1'的相关文章

python执行报错“UnicodeDecodeError: 'gbk' codec can't decode byte 0xa1 in position 110: illegal multibyte sequence”

执行如下程序报错 import pytest @pytest.fixture() def user(): print("获取用户名") a = "zt" return a def test_1(user): assert user == "zt" if __name__ == "__main__": pytest.main(["-s","test_fixture1.py"]) Testi

Jenkins运行python脚本出现 configparser.NoSectionError: No section: 'XXXXXX'

原来的代码如下: def get_test_config(tag, key, config="config.ini"): cf = configparser.ConfigParser() cf_path = os.getcwd() cf_path = os.path.join(cf_path, config) cf.read(cf_path) value = cf.get(tag, key) return value 可以看到,这里使用了 getcwd(),就是获取当前工作目录(相对路

【Python 脚本报错】AttributeError: 'module 'yyy' has no attribute 'xxx'的解决方法

先参考这篇记录大概理解了原因, 再深入了解下python的import机制, 发现自己的模块之间存在互相import. 比如,A.py中import B,而B.py中也import A了, 现在执行模块A,就会先将B中的代码搬过来,但B中有import A,而此时A.pyc还没生成,所以B中import A之后的代码也执行不了: 如果mode B 的 attribute xxx是定义在import A之后,那么就会出现题目中的报错: (而python是解释性语言,所以import A之前的代码还

Python递归报错:RuntimeError: maximum recursion depth exceeded in comparison

Python中默认的最大递归深度是989,当尝试递归第990时便出现递归深度超限的错误: RuntimeError: maximum recursion depth exceeded in comparison 简单方法是使用阶乘重现: 1 #! /usr/bin/env Python 2 3 def factorial(n): 4 5 if n == 0 or n == 1: 6 7 return 1 8 9 else: 10 11 return(n * factorial(n - 1)) >

python 编码报错问题 'ascii' codec can't encode characters 解决方法

python在安装时,默认的编码是ascii, 当程序中出现非ascii编码时,python的处理常常会报这样的错 'ascii' codec can't encode characters python没办法处理非ascii编码的, 此时需要自己设置将python的默认编码,一般设置为utf8的编码格式. 查看python的默认编码 print sys.getdefaultencoding() 解决方法一(已通过验证,顺带也解决了我之前字符前一直加u的问题) 在python安装目录下,进入\P

sql执行报错--This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

问题: 不支持使用 LIMIT 子句的 IN/ALL/ANY/SOME 子查询,即是支持非 IN/ALL/ANY/SOME 子查询的 LIMIT 子查询. 解决: 将语句:select * from table where id in (select id from table limit 0,10) 变更为:select * from table where id in (select t.id from (select * from table limit 0,10)as t) sql执行报

Ubuntu下sh *.sh使用==操作符执行报错

----<鸟哥的Linux私房菜--基础篇>学习笔记 ubuntu默认的sh是连接到dash,而我们写shell脚本时使用的时bash.bash和dash在一些方面是不兼容的.因此执行同一个脚本,两者结果不一样,可能用./*sh可以执行,而sh *.sh报错. 为了正确实行使用./*.h 或者  bash *.sh  或者把==换成=(不兼容部分) 也可以直接让系统不使用dash....Ubuntu之所以使用dash是因为其体积小,兼容性高,但是悲催的时,一些bash可执行的脚步在dash下不

安装python模块报错 error: command &#39;gcc&#39; failed with exit status 1

最近在安装paramiko模块的时候,总是报错:error: command 'gcc' failed with exit status 1,一开始比较挠头.找了蛮多资料,说的大多都是说缺少Python-devel 包,然而并不是! 最后蛮费劲的找到了一遍短小但就是正确的博文:http://blog.csdn.net/fenglifeng1987/article/details/38057193 —————————————————————— 解决方法: 安装:yum install gcc li

salt执行报错一例

执行报错: 查看服务端日志: 认证有问题 重新认证吧!!! minion端: [[email protected] ~]# cd /etc/salt/[[email protected] salt]# lsminion minion.d minion_id pki[[email protected] salt]# rm -rf pki/ [[email protected] salt]# /etc/init.d/salt-minion restart master端: [[email prote