美文网首页颠覆你的Python实践软件测试软件测试职业探索
使用JavaScript或者jQuery写一些简单的自动化脚本

使用JavaScript或者jQuery写一些简单的自动化脚本

作者: 亭子青年 | 来源:发表于2017-10-19 22:20 被阅读1241次

    写在前面的话

    我还是那个不怎么会带娃的测试
    很多时候我们希望在做手工测试的时候,可能需要一些自动化来帮助我们测试,实现半自动化的测试,比如,常用的登录模块,我希望可以自动化起来,实现一打开登录页面,就可以自动的执行登录操作,并成功的进入项目主页面中。那么我们可以使用js这样的语言来写,为什么不用自己熟悉的py selenium来做,因为每次执行脚本的时候需要打开ide或者输入脚本来运行,感觉很麻烦,这里提供一个思路(这个思路来自于上周周末的一个关于自动化测试的线下分享活动)

    jq的基础

    jq定位element: $("#kw")
    jq输入text:$("#kw").val("selenium")
    jq触发click: $("#su").click()
    jq事件处理函数:$("#su").click(function(){你的代码}),当id为su的这个对象进行点击操作的时候会触发click事件,进而执行function的代码
    js匿名函数的自动执行-第一个括号里面放匿名函数,后面一个括号表示执行第一个括号里面的匿名函数:(function(){})()
    js在浏览器标签中的执行:Javascript:代码
    js的browser对象-location对象实现页面的跳转(当前页面):window.location.href="http://www.jb51.net";
    js的browser对象-新建窗口打开指定的url : window.open("http://www.jb51.net");

    让我们做个简单的自动化测试

    有的时候我们可能需要自动化来帮助我们执行功能测试,我们可以做一些简单的自动化的脚本,这里提供一个方法,也是一个比较好的思路。使用js/jquery写一些自动化代码放到浏览器的收藏栏目,每次使用的时候,点击一下你收藏的这个标签就可以了。

    # 代码:利用百度首页做案列
    $(function(){
        $("#kw").val("selenium")
        $("#su").click()
    })
    
    # 将上面的代码加入到书签中,书签名字自定义,书签网址中放入下面的js代码
    javascript:$(function(){$("#kw").val("selenium");$("#su").click();})
    
    

    运行看效果

    1. 首先打开百度页面
    2. 然后在该页面打开刚才的标签,就可以看到效果啦

    javascript模拟enter键盘的按键操作

    jq触发某个指定键盘按键的keydown操作?-来自我们可爱的同事的帮助,我表示我看不懂(毕竟我还是个薄弱的测试,哈哈哈),只是做一个记录,之后需要的时候可以研究一下,因为现在网络上的资源也不是有很多。

    function fireKeyEvent(el, evtType, keyCode) {
            var doc = el.ownerDocument,
                win = doc.defaultView || doc.parentWindow,
                evtObj;
            if (doc.createEvent) {
                if (win.KeyEvent) {
                    evtObj = doc.createEvent('KeyEvents');
                    evtObj.initKeyEvent(evtType, true, true, win, false, false, false, false, keyCode, 0);
                }
                else {
                    evtObj = doc.createEvent('UIEvents');
                    Object.defineProperty(evtObj, 'keyCode', {
                        get: function () { return this.keyCodeVal; }
                    });
                    Object.defineProperty(evtObj, 'which', {
                        get: function () { return this.keyCodeVal; }
                    });
                    evtObj.initUIEvent(evtType, true, true, win, 1);
                    evtObj.keyCodeVal = keyCode;
                    if (evtObj.keyCode !== keyCode) {
                        console.log("keyCode " + evtObj.keyCode + " 和 (" + evtObj.which + ") 不匹配");
                    }
                }
                el.dispatchEvent(evtObj);
            }
            else if (doc.createEventObject) {
                evtObj = doc.createEventObject();
                evtObj.keyCode = keyCode;
                el.fireEvent('on' + evtType, evtObj);
            }
        }
    
    var textbox = document.getElementById("intputTest");
    fireKeyEvent2(textbox, "keydown", "13");
    

    写在最后的话

    如果是一般的text,btn这样的控件对象,只需要执行输入,click的操作,我们可以使用js来做,但是如果遇到需要我们自动触发keydown事件的页面可以使用py来写,毕竟在模拟按键操作上比较简单。

    (雨和熊掌不能兼得)

    相关文章

      网友评论

      本文标题:使用JavaScript或者jQuery写一些简单的自动化脚本

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