51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 16405|回复: 36
打印 上一主题 下一主题

【你来问我来答第84期】:从手工测试到Selenium自动化(活动结束)

[复制链接]
  • TA的每日心情
    开心
    2021-4-27 13:59
  • 签到天数: 184 天

    连续签到: 1 天

    [LV.7]测试师长

    1#
    发表于 2017-8-1 17:13:11 | 显示全部楼层
    applepen 发表于 2017-8-1 13:25
    提问:
    1.就目前Selenium只能做Web跟Android App方向的自动化是吗?
      像IOS App跟 Windows桌面应用的自 ...

    1、selenium的创作团队很明确说了,他们只专注WEB测试.
         你如果想测试APP,给你找了个帖子,讲的很好。https://www.zhihu.com/question/19716849
         如果你想测试CS的,QTP是个不错的选择,当然价格不在考虑范围内。
    2、Firebug和Firepath,基本上足够你去定位元素了,如果你对XPATH熟悉,Firebug一个就足够了。
         主要的定位方式:id,name,identifier,js,link,css如果这些都不行,那么用xpath几乎能百发百中的。
    3、能用固定的属性,比如id,name(当然要唯一),tagname等的,尽量去用。没办法了再用XPATH,这样后期维护会省很多力气,减少因为程序员调皮改代码影响你的脚本。
    4、QTP跟Selenium打起来的话,很难说谁会赢。开源和价格不谈以外,QTP有keyword view不会编程的照样做自动化,webdriver就会傻瞪眼,除非谁还把seleniumIDE挖出来玩玩。
    另外,QTP很多功能都做了封装,留给用户的可能就填一个数据或者改个配置就能完成一项自动化测试,比如,QTP的参数化,简化到了你只需要填写excel表格就可以自动循环和调用,而webdriver,完成一个参数化绝不少于4页A4的代码。所以从易用性上来说,selenium估计是打不过QTP的。
    但是,事情的转机往往就在价格上面了,QTP要加一个插件,或者定制个什么功能,代价不菲;selenium自然都是开源的。这一点,如果你不让我谈的话,我觉得真没啥好说了,还有比这个更能打动老板的心吗?
    如果再要掰一点出来,QTP用了那么多年,会的人比较多,招人比较好招吧;webdriver对招人来说,要求就高很多很多了,要做过多年测试(会设计数据)+多年开发(会编写脚本)。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-4-27 13:59
  • 签到天数: 184 天

    连续签到: 1 天

    [LV.7]测试师长

    2#
    发表于 2017-8-1 17:14:45 | 显示全部楼层
    Cherish308 发表于 2017-8-1 16:52
    老师,您好:
    目前我已经学习了Selenium的一些基础API,操作web上页面基本元素,结合python的unittest框架 ...

    看实例,看好的实例,看效率高的实例,最后把好的实例收藏起来
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-4-27 13:59
  • 签到天数: 184 天

    连续签到: 1 天

    [LV.7]测试师长

    3#
    发表于 2017-8-10 18:15:27 | 显示全部楼层
    giggs456 发表于 2017-8-2 17:37
    我做自动化已经6年了,最近发现seleniumhq官网上说selenium支持Winium.Desktop, Winium.StoreApps,我的理 ...

    我主要的经验都是WEB,C/S以及桌面应用确实测得很少,要测也是手工测试的。所以这个领域不太敢造次。
    这些年来,对于cs的测试,大部分网友还是推荐QTP。另外还有个工具不知道你用过没有TestComplete。据用过的网友说,还是不错的。
    也许只能帮到你这里了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-4-27 13:59
  • 签到天数: 184 天

    连续签到: 1 天

    [LV.7]测试师长

    4#
    发表于 2017-8-10 18:19:11 | 显示全部楼层
    黑色的杰克 发表于 2017-8-2 18:14
    提问:selenium测试能与开发同步进行吗,请从多方面详细解答,谢谢!

    可以的,而且是必须的。
    虽然界面不稳定,会给你的脚本带来很多维护量。但是一旦软件做好了,你发现有些东西不能识别到,想让开发给你加点属性,估计开发是不愿意的。
    所以开发在做一些核心控件的时候,你完全可以用selenium先识别下,看下能不能识别到,不能识别到的,让开发帮下忙加点属性,这个时候,也不会影响他们工作太多。
    对于一些完整的流程,大可到了界面稳定后再串起来。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-4-27 13:59
  • 签到天数: 184 天

    连续签到: 1 天

    [LV.7]测试师长

    5#
    发表于 2017-8-10 18:21:12 | 显示全部楼层
    自动化小白 发表于 2017-8-3 15:49
    提问:
    老师 你好,我是一个刚接触测试行业自动化测试的萌新,请问能怎样快速的上手selenium工具呢?

    先选一个自己熟悉的selenium能支持的语言吧。
    然后找一些实例去看。自己动手再实践,做过几个实例就慢慢上手了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-4-27 13:59
  • 签到天数: 184 天

    连续签到: 1 天

    [LV.7]测试师长

    6#
    发表于 2017-8-11 10:23:36 | 显示全部楼层
    zyzyzx1 发表于 2017-8-9 10:48
    丁老师 您这么年轻 就能积累这样多年的工作经验和技术知识 而且还是位大美女
    不由得暗自叹息 同为测试从业 ...

    第一个问题,你指的COM对象是桌面应用或者C/S的吗?因为这个外面用得少,所以咋们这个QTP课程中没有这块,主讲web。给你找了个帖子,我看了一下写的挺详细。http://blog.sina.com.cn/s/blog_62b8fc330100lwrp.html
    第二个问题,在讲selenium课程的时候,讲到一部分js的内容,主要是有的控件无法识别,采用JS的方式去识别。
    第三个问题,这两个性能工具,无论哪个,做完测试后,都需要对性能指标进行一下分析,我在jmeter这个课程中,穿插了一些性能指标的分析内容,比如如何判断内存泄漏,CPU瓶颈,如何定位性能问题,性能调优需要注意的点响应时间图分析等等。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-4-27 13:59
  • 签到天数: 184 天

    连续签到: 1 天

    [LV.7]测试师长

    7#
    发表于 2017-8-11 10:25:14 | 显示全部楼层

    这个怎么说呢,现在还是有一些公司在用QTP的,不过都是些大公司,因为毕竟售价比较贵,公司的项目成本会提高;但是从易用性和上手度上来说,这个都是selenium所不及的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-4-27 13:59
  • 签到天数: 184 天

    连续签到: 1 天

    [LV.7]测试师长

    8#
    发表于 2017-8-11 11:04:56 | 显示全部楼层
    菜鸟小丸子 发表于 2017-8-4 10:44
    大神,你好:
    最近在用selenium+java+testng写的页面自动化,遇到一个问题,用下面的方法实现模拟F12页面 ...

    这个我笔记本是fn+F12的,不知道你是不是也是,所以单纯用action是驱动不起来的。
    所以我改用Robot了。package test;

    import java.awt.AWTException;
    import java.awt.Robot;
    import java.awt.event.KeyEvent;

    import org.junit.AfterClass;
    import org.junit.BeforeClass;
    import org.junit.Test;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;

    public class F12 {
            public static WebDriver driver=null;

            @BeforeClass
            public static void setUpBeforeClass() throws Exception {
                    System.setProperty("webdriver.chrome.driver","C:\\browserdriver\\chromedriver.exe");
                    driver=new ChromeDriver();
            }

            @AfterClass
            public static void tearDownAfterClass() throws Exception {
                    driver.quit();
            }

            @Test
            public void test() throws InterruptedException, AWTException {
                    driver.get("https://www.baidu.com/");
                    Robot robot = new Robot();
                    robot.keyPress(KeyEvent.VK_F12);
                    robot.keyRelease(KeyEvent.VK_F12);
                    Thread.sleep(3000);
            }

    }


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-4-27 13:59
  • 签到天数: 184 天

    连续签到: 1 天

    [LV.7]测试师长

    9#
    发表于 2017-8-11 11:19:28 | 显示全部楼层
    zyp9091 发表于 2017-8-10 16:51
    老师,什么是插件包测试,测试的对象是什么?

    不知道你指的插件包有没有什么特殊性,我理解的插件包无非是安装好了插件后,某个软件中多了一个功能,然后做正常的功能测试即可,然后就是不要忘记测试,卸载了插件包后,软件有没有什么异常
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-4-27 13:59
  • 签到天数: 184 天

    连续签到: 1 天

    [LV.7]测试师长

    10#
    发表于 2017-8-28 13:59:39 | 显示全部楼层
    小扳手 发表于 2017-8-16 17:50
    提问:    1,编写测试用例时,如何进行思考。如,我现在工作的公司经常对app内部功能进行改版,我编写用例 ...

    编写测试用例,就像我们写作文,一般都要先打个大纲稿,先把要写的东西提一下,再细化里面的细节。
    在测试用例里面,这个大纲就是测试需求,写的时候只要点到为止,并不需要怎么去测试的细节,这样就能把精力集中在思考要测试哪些东西上面。
    比如,测试一个输入框,就要考虑要测哪些东西,正常的输入,异常的输入数据,用户易用性测试等等。等想完了要测试哪些点后,再逐一去思考每个点的测试步骤。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-4-27 13:59
  • 签到天数: 184 天

    连续签到: 1 天

    [LV.7]测试师长

    11#
    发表于 2017-8-28 14:10:33 | 显示全部楼层
    kexinqw11 发表于 2017-8-25 10:32
    老师,您好!我想让你解答下我的问题,非常感谢~
    1.数据驱动你们是怎么做的,用的是testng的dataprovider+ ...

    1、我用的比较多的还是POI的那一套。数据还是写在excel里面的。这样后期维护比较方便。读取excel的代码可以这样写:
      //读取excel文件
            InputStream is = new FileInputStream(filesrc);
            POIFSFileSystem fs = new POIFSFileSystem(is);
            HSSFWorkbook wb = new HSSFWorkbook(fs);
            HSSFSheet sheet = wb.getSheetAt(0);
            if(sheet==null){
                System.out.println("暂无数据,请输入测试数据");
            }
            //获取文件行数
            int rows = sheet.getLastRowNum();

    2、自动化测试,一般测试人员都比较犯憷,无非就是那些代码太长,不好理解,所以,有些公司就在QTP或者SELENIUM的基础上,做了封装,对外只留了一些数据输入的接口,这样普通的测试人员,只要把精力放在设计测试数据上就好了,然后再执行,中间的逻辑代码对他们都是黑盒。你上面第一个问题的数据驱动不就是一个典型,excel留给他们去设计就简单了。

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-4-27 13:59
  • 签到天数: 184 天

    连续签到: 1 天

    [LV.7]测试师长

    12#
    发表于 2017-8-31 16:34:44 | 显示全部楼层
    Luby 发表于 2017-8-30 17:55
    提问丁老师:目前是一名手工测试人员,想从功能向自动化提升,但是没有代码基础,应该怎么进步呢?先学语言 ...

    你应该先选定一个你想使用的自动化的工具,很多自动化工具都有一些基本使用操作是不需要编程技能的,都是图形化的,你可以先从这个图形化的操作开始,熟悉了工具的机制后,再学习语言,进行深层次的编程。

    或者,我们大学里面多少都学过一些编程语言,这些是你熟悉的,你可以通过这个熟悉的语言去挑选工具。不过还是推荐看第一条
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-5 14:20 , Processed in 0.080338 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表