美文网首页robotframework自动化测试框架
手把手教你学robotframework自动化框架(第七章:出坑

手把手教你学robotframework自动化框架(第七章:出坑

作者: fengzhulin | 来源:发表于2021-01-26 10:26 被阅读0次

    目录

    1、环境配置(完成)

    2、一个简单的实例(完成)

    3、让用例更完善一些(2021年01月15日完成完成)

    4、用例的前置和后置(2021年01月18日完成)

    5、关键字的封装和传参(2021年1月23日完成)

    6、创建自己的资源文件(2021年1月23日完成)

    7、出坑秘籍,问题汇总(2021年1月25日完成)

    8、如何自己编写一个library(2021年1月28日完成)

    9、数据库连接

    9、如何支持win32应用

    10、接口测试

    11、持续集成

    12、自定义包

    13、ride使用(快捷键、tear down、timeout、template、tags)

    14、常见问题

    问题1、安装后,testcase的编辑区域很小无法使用。

    --->解决:

    这是因为ride和python3.8兼容不好,可以升级ride。

    pip install -U https://github.com/robotframework/RIDE/archive/master.zip

    升级后正常。

    问题2、执行报错

    command: pybot.bat -A C:\Users\ADMINI~1\AppData\Local\Temp\RIDEn5q1l5cf.d\argfile.txt --listener D:\Python38\lib\site-packages\robotide\contrib\testrunner\TestRunnerAgent.py:50075:False F:\whty\whty

    --->解决:

    版本兼容问题,可以做如下设置解决。


    问题3:执行报错

    \xb2\xe2\xca\xd4\xd3\xc3\xc0\xfd2 | FAIL |

    WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

    --->解决:

    因为webdriver没有放入path,如果是crome浏览器,需要先下载浏览器驱动geckodriver,将下载的geckodriver放到火狐浏览器的执行目录下

    然后把这个地址加入环境变量path。或者把geckodriver放入python的安装目录根目录下也可。

    geckodriver下载地址:https://github.com/mozilla/geckodriver/releases

    下载geckodriver.exe 地址:https://github.com/mozilla/geckodriver/releases,根据自己系统选择相应的版本

    下载解压后将getckodriver.exe复制到Firefox的安装目录下,如(C:\Program Files\Mozilla Firefox),并在环境变量Path中添加路径:C:\Program Files\Mozilla Firefox;

    再次运行就OK。


    问题4:执行报错

    [ ERROR ] Suite 'Whty' contains no tests matching name 'Whty.Test.\xb2\xe2\xca\xd4\xd3\xc3\xc0\xfd' in suite 'Whty.Test'.

    Try --help for usage information.

    ---》解决:test  suite格式问题,可以换成robot格式即可。右键点击suite,选择change format


    问题5:ride输出编码问题

    ride的log输出中,出现编码错误

    \xb2\xe2\xca\xd4\xd3\xc3\xc0\xfd2 | FAIL |

    PermissionError: [WinError 5] \xbe\xdc\xbe\xf8\xb7\xc3\xce\xca\xa1\xa3

    或者:\xb5\xbc\xc8\xeb\xb7\xd6\xc5\xe4

    --->解决:Python 安装路径下修改 \Lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py 文件,将 'SYSTEM': SYSTEM_ENCODING,改成 'SYSTEM': OUTPUT_ENCODING,如下图:

    因为我用的python3和ride2,用了上面的方法并没有解决问题,后来我就重新装了ride的1.7.4.2版本,导致ride无法启动,于是又重新执行了官网的指令进行安装。pip install robotframework-ride==2.0b1。如果不带==2.0b1,安装的版本号是不同的,不知道是不是这个原因导致的。重新安装后就正常了。


    问题6:图形验证码获取

    测试过程中,需要测试一些验证码功能,需要涉及到图形识别,要先安装Tesseract-OCR,下载exe安装;

    然后pip安装pillow,pip安装pytesseract(依赖pytesseract-OCR,所以要先安装)

    安装完esseract-OCR要配置环境变量

    还要修改如下图文件

    修改文件

    修改内容:tesseract_cmd = r'D:\Program Files (x86)\Tesseract-OCR\tesseract.exe'。注意要修改到exe级别

    重启电脑


    问题7:关于自定义包引用问题

    1、在site-pakages下面新增NewLibrary文件夹,内部文件如下

    其中_init_.py是必须的,可以为空文件。

    然后ride引用

    引用截图

    不知为何,直接引用NewLibrary是不行的。还不知原因。

    另外需要配置NewLibrary这个目录为环境变量

    问题8:识别验证码,且带干扰线

    可以参考如下链接解决,本人未尝试

    https://blog.csdn.net/weixin_40267472/article/details/81384624

    问题9:安装autoitlibrary报错command errored out with exit status1:

    在用pip安装autoitlibrary的过程中,出现如下报错。

    百度了后,说是需要用管理员身份执行,所以需要下载下来进行安装。

    下载autoitlibrary、autoit

    autoit下载地址:https://www.autoitscript.com/site/autoit/downloads/,版本最新是1.1

    autoitlibrary下载地址(官网):http://www.softpedia.com/get/Programming/Components-Libraries/AutoItLibrary.shtml

    autoitlibrary下载后解压到某个文件夹,然后用管理员身份执行命令行。我是放在D:\Python38\AutoItLibrary-1.1这个路径下。

    安装过程中会有一些语法报错,需要修改一下autoitlibrary的代码,因为它支持的应该是python2

    修改文件:D:\Python38\AutoItLibrary-1.1\setup.py

    修改print为print():

    修改“raise Exception, "Failed to run %s" % cmd”为“raise Exception("Failed to run %s" % cmd)”:

    将exception和print的都加上括号

    _init_.py文件里面的exception

    logger.py文件里面的print

    然后用管理员身份执行cmd

    执行如下命令

    因为autoitlibrary依赖autoit,所以还要下载autoit后安装,记住安装的时候要选择64bit的

    可是安装后,ride里面导入autoitlibrary还是红色。mygod,路漫漫其修远兮。。。

    继续查查查,先看报错

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

      File "D:\Python38\lib\site-packages\AutoItLibrary\__init__.py", line 30, in <module>

        import Logger

    ModuleNotFoundError: No module named 'Logger'

    ------提示找不到模块,查了下,python3的语法和python2是不同的,模块的调用也不同,找到一个说法说模块前面要加_,试试还是不对

    >>> import AutoItLibrary

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

      File "D:\Python38\lib\site-packages\AutoItLibrary\__init__.py", line 30, in <module>

        import _Logger

    ModuleNotFoundError: No module named '_Logger'

    然后继续找差异,百度上找到下面这个说法

    其他语法差异参考链接:https://www.cnblogs.com/davidwang456/p/7493795.html

    按照这个说法,改了一下D:\Python38\Lib\site-packages\AutoItLibrary\__init__.py文件的代码

    将 import Logger和 import Counter

    改为:

    from . import Logger

    from . import Counter

    先在cmd里面执行python的importAutoItLibrary,试试,如下:

    >>> import AutoItLibrary

    >>>

    没有报错,说明成功啦!!!哈哈哈哈哈开心。

    可是,,,,去ride里面导入。omg,我 要死了

    继续攻克。。。。

    利用cmd(且需要用管理员身份进入否则会报0x80070005代码错误,注册失败)进入AutoItX3.dll文件所在路径,运行系统注销和系统注册命令:

    c:\Python27\Lib\site-packages\AutoItLibrary\lib>regsvr32 /u AutoItX3.dll

    c:\Python27\Lib\site-packages\AutoItLibrary\lib>regsvr32 /s AutoItX3.dll

    终于成功,欢天喜地,喜极而泣,折腾了一个上午:

    问题10:autoitlibrary中途突然部分关键字不可用

    在某天安装了appiumlibrary后,发现和seleniumlibrary的关键字有冲突,于是删除了appiumlibrary

    但是第二天autoitlibrary中的部分关键字也消失了,只能看到8-9个可用关键字。

    --->解决:

    F5查询AUTOITLIBRARY的关键字,只有几个了。缺少了很多关键字。为啥捏?

    搞不懂。于是删除了autoitlibrary。然后重新导入,还是不行。

    继续度娘啊。度娘也没找到好的办法。

    于是又重新安装了一次autoitlibray,重新反注册和注册一次。就好了。

    原因未知。

    相关文章

      网友评论

        本文标题:手把手教你学robotframework自动化框架(第七章:出坑

        本文链接:https://www.haomeiwen.com/subject/yqxgzktx.html