问题记录
1.接口返回的数据中存在换行,导致比对失败,只能在期望数据中也进行换行才行,很麻烦
解决办法:通过re.sub(("\n","",res.text))进行去除
2.在做接口自动化的编写测试用例,在运行一个测试用例的时候,出现如下报错,各种尝试,最后终于找到原因
先看报错,翻译:位置35处的未终止字符集
Error Traceback (most recent call last): File "D:\python3.6\lib\site-packages\ddt.py", line 153, in wrapper return func(self, *args, **kwargs) File "G:\01WorkSpace(Pycharm)\Algorithm01\TestCases\test_api.py", line 94, in test_api re_obj = re.finditer(case_data["expected_data"],res_text) File "D:\python3.6\lib\re.py", line 229, in finditer return _compile(pattern, flags).finditer(string) File "D:\python3.6\lib\re.py", line 301, in _compile p = sre_compile.compile(pattern, flags) File "D:\python3.6\lib\sre_compile.py", line 562, in compile p = sre_parse.parse(p, flags) File "D:\python3.6\lib\sre_parse.py", line 856, in parse p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, False) File "D:\python3.6\lib\sre_parse.py", line 415, in _parse_sub itemsappend(_parse(source, state, verbose)) File "D:\python3.6\lib\sre_parse.py", line 522, in _parse source.tell() - here) sre_constants.error: unterminated character set at position 35
说一下背景,这条测试用例是通过正则表达式进行匹配判断,是否断言成功的,部分代码如下:
期望结果:case_data["expected_data"] ={"ret":"0","totalcount":397,"tasks"[]:,"desc":"Success"}
接口返回结果:res_text = {"ret":"0","totalcount":397,"tasks"[]:,"desc":"Success"}
re_obj = re.finditer(case_data["expected_data"],res_text) print("正则表达式匹配模式,匹配的内容为:{0}".format(re_obj)) self.assertIsNotNone(re_obj,"正则表达式匹配失败!")
报错翻译过来是:位置35处的未终止字符集,发现 35处是tasks对应的一个空列表,去掉这个空列表,就不会发生报错,
怀疑应该是正则匹配时,对空列表一直取值,导致本次匹配一直没有停止的原因
3.离线安装requests缺少依赖包
4.在使用阿里云服务器,一定要看阿里云设置的端口安全组,是不是支持这个端口,否则不通,在使用jenkins的时候,需要添加端口号,才可以跑任务
5.使用ride引入自写的Python函数的时候出现一个有意思的现象,按照正常操作需要将自写的py文件放到对应python2.7的scripts的目录下,然后进行引用,发现引用失败,然后将这个文件删除后,发现引入标红的文件名变成了黑色,引用成功
6.编程规范的错误一
部分代码如下
feature = get_Feature(url,ls_f) # print(feature) insert_feature=insert_feature(url_insert,repo,filename,feature) print(insert_feature)
报错如下:
Traceback (most recent call last): File "G:/01WorkSpace(Pycharm)/Pict_Search/addFeature1.py", line 66, in <module> insert_feature=insert_feature(url_insert,repo,filename,feature) TypeError: 'str' object is not callable
错误很低级啊,将接收变量的名字insert_feature与自己写的函数名字命名成一样的,就会返回字符串不可以调用,唉
7.解决Intellij idea Error:java: 无效的源发行版: 1.8
原因在于模块的target bytecode version和实际的编译器版本不一致所导致的错误。不管三七二十一,把所有jdk版本统统改成一样的,首先按下快捷键ctrl+shift+alt+s: