我是怎样帮助漂亮的测试妹妹实现自动化的(小记)
我是怎样帮助漂亮的测试妹妹实现自动化的(小记)
爬虫张小呆 发表于6个月前
我是怎样帮助漂亮的测试妹妹实现自动化的(小记)
  • 发表于 6个月前
  • 阅读 110
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   

摘要: 一天,我们的产品经理“乔哥”跟我说:现在你学习的selenium不仅可以实现批量采集,而且也可以帮助我们的测试组实现部分自动化。心花怒放的我很开心的就接下了这个案子,于是就有了这篇博客。

一天,我们的产品经理“乔哥”跟我说:现在你学习的selenium不仅可以实现批量采集,而且也可以帮助我们的测试组实现部分自动化。心花怒放的我很开心的就接下了这个案子,于是就有了这篇博客。

首先来“po”一张我们测试组妹子的照片吧

差不多就行了,别老看了。来谈一谈项目。

项目环境:

(1)测试妹妹机器,windows7系统,8GB内存, 因为妹子正在学习Java,所以windows的环境变量也配的比较多。桌面比较乱,第一次看,我以为自己看见了银河。

(2)我的机器,ubuntu系统,8GB内存。环境变量(PATH)心中有数,桌面干净整洁。

项目的本身是没有多少技术含量的,就是使用selenium来模拟网站的登录操作。这方面的资料在百度上一搜能搜一大堆。关键是需要考虑怎样让自己写好的东西,在妹子那里能最简单,改动最小,后续可维护,最少出错的运行起来。

为此我想了四种办法。来分别谈一下利弊。

一、利用python打包工具,将写好的文件打包,发送给妹子。让妹子在她的本机点一下那个exe文件。

利:

        只会给同事一个可执行的exe文件,我觉得这样保护了我的“智慧结晶”而且看上去十分精致小巧,同时,如果考虑周全的话,可移植性是比较好滴。

弊:

        python打包工具,之前帮SEO组做过一些小工具,通常是使用py2exe和pyinstaller。后来发现这种方式维护的成本极高,在于,这种工具可能后期同事要求加的功能越来越多。而本机与同事之间的环境不同。在后期同事要求增加功能时,需要再在本机写代码,再打包给同事。本机调试通过之后,不一定在同事那里就会很顺利。所以在同事那里还需要进行调试。

        而写这种小工具需要考虑到效率和可维护。通常写对这种工具维护时间不会超过半个小时的时间。而要同时考虑到脚本在不同机器之间的运行情况。需要的时间肯定远远的超过半个小时了。

二、给妹子的电脑直接配python环境。让妹子在她的本机点一下.py文件。

利:

        一个字“方便”,(如果能够配好的话。)前期就直接在妹子电脑上配环境,写代码。有什么改动就直接在妹子机器上改就行了。维护的时间成本也低了很多。

弊:

        彻底没有了可移植性,以后妹子这台电脑坏了,其他妹子也要使用这种自动化测试,那我需要在所有的妹子电脑上配环境,并贴好代码。维护成本瞬间呈倍数上升。

实际情况是:

        妹子的电脑开机就像银河。环境变量遍地丛生。如果我直接动她的环境变量,可能会打乱她原来的环境变量。(好吧,我承认是我对windows不太熟悉。)。另外工作时长也有限,不能占用妹子太多的时间去配环境。还有在真正执行操作时,可视化的自动化测试界面会打乱,妹子在做的其他工作。

(这是银河)

三、在我的本机中,写好脚本之后,让妹子切换到和我同在的局域网中用shell执行。

利:

        一个字“简单”,只需要告诉妹子几句命令,给她弄个“xshell”。到时候直接连接上我的电脑。就可以执行操作了。

弊:

        没有可视化界面。作为测试媛,出错后,用“看的”才能方便的知道哪里出错了。另外单位的局域网是个问题,因为我们单位是个大公司,所以妹子和我并不在同一个局域网下。想要执行此操作,就必须要切换到我设置了白名单的局域网下。这样就比较麻烦。

四、我的本机和妹子的本机中同时安装vmware。在我在我的虚拟机中配好环境,写好脚本。再移植给妹子。

利:

        可移植性较高,只需要把虚拟机中对应的系统文件复制好,粘贴给妹子,妹子那边一打开,立马就能用,因为vmware是跨平台的,所以我的脚本也是跨平台的。同时文件是可以复制给所有人的,如果其他人也需要,让他安装一个vmware就好了。

        可维护性较高,我本地改好,立马复制给她,不需要太多时间,不需要考虑平台问题,不需要考虑是否占用妹子时间,也不需要考虑系统环境问题,因为,在虚拟机中,我和妹子的环境是一致的。

 弊:

        除了先要装一个vmware之外,真心想不出来还有什么不好的。要求机器配置不要太低,但是测试妹子的内存足足有8GB。运行虚拟机那是绝对没有问题滴。

---------------------------------------华丽的分割线-------------------------------------------------

步骤1、没说的,安装vmware。windows和ubuntu安装vmware都挺简单,不会请自行百度。这里就提一句,vmware是一款收费软件,最新的vmware是收费的。但是如果你不追求最新版,网上有好多vmware 10,vmware 9。

步骤2、在虚拟机中安装系统

这里我选用的是windows xp,第一,因为它是windows系统,所以基本上人人都会使用。第二,系统镜像不大,可以在神不知鬼不觉的情况下,在单位下载完,而不用感受同事们的怒火。

步骤3、在虚拟机中配置环境,我这里用的是python2.7, selenium。很简单滴,

只需要在python网站上下载最新的python2.7就行啦,(解压,.configure,编译,安装,设置环境变量)然后安装setuptools(解压, 编译,安装, 设置环境变量)。

easy_install pip。

pip install -U selenium。

步骤4、编写测试代码,我这里使用Chrome做示例。

# -*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

oa = open('log')
content = oa.read()
if '\r\n' in content:
    contents = content.split('\r\n')
elif '\r' in content:
    contents = content.split('\r')
elif '\n' in content:
    contents = content.split('\n')
    
acount_dict = {t.split(':')[0]: t.split(':')[1] for t in contents}

oa.close()


def test(test_name, acount):
    print test_name
    driver = webdriver.Chrome()
    driver.get('http://my.huangye88.net/login.html')
    e1 = driver.find_element_by_id("user_name")
    e2 = driver.find_element_by_id("user_password")
    e3 = driver.find_elements_by_xpath('//input[@class="orangebtn"]')[0]


    e1.send_keys(acount.split('\t')[0])
    e2.send_keys(acount.split('\t')[1])
    e3.click()

    if driver.title == u'【黄页88网登录】-黄页88网':
        print u'登陆成功'
    else:
        print u'登陆失败'
    driver.quit()
    

for k, v in acount_dict.items():
    test(k, v)

这里主要是测试网站登录的。log是保存网站的账号和密码的文件。

这时候,虚拟机的环境和python脚本一切都已经搞定了,现在该到了移植的环节啦。

步骤5、移植

找到你虚拟机xp系统文件在本机中保存的路径,我的路径是这里

所以我把这个文件夹放在从同事哪里借来的u盘里面,拷到测试妹妹的计算机里面。

马上跑到测试妹妹那里,打开测试妹妹的虚拟机,点击文件,选择“打开”

在对话框里面找到你刚刚拷贝的虚拟机系统文件。点击.vmx文件。

接下来就一切跟着提示走就OK了,不一会就看见xp系统运行起来了,在运行你刚刚写好的测试脚本。发现也完美的运行起来了。

以上。

更多内容请订阅我的公众号

共有 人打赏支持
粉丝 2
博文 17
码字总数 10731
×
爬虫张小呆
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: