<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問 http://qaseven.github.io/

    數(shù)據(jù)庫觸發(fā)器控制

    ①選修成績(jī)表SCTS中,學(xué)生選修成績(jī)由平時(shí)成績(jī)(regular_grade)和考試成績(jī)(exam_grade)構(gòu)成課程總評(píng)成績(jī)(total_mark),公式為:total_mark= regular_grade*30%+ exam_grade*70%
      設(shè)計(jì)DML觸發(fā)器,使得當(dāng)用戶修改某位學(xué)生選修某門課程的平時(shí)成績(jī)或者考試成績(jī)時(shí),自動(dòng)實(shí)現(xiàn)對(duì)該學(xué)生該門課程總評(píng)成績(jī)的更新。
    Create trigger Tri_UPDATE_SCTS
    on SCTS
    after UPDATE
    AS
    BEGIN
    IF UPDATE(regular_grade)or UPDATE(exam_grade)
    BEGIN
    DECLARE @rgrade float;
    DECLARE @egrade float;
    select @rgrade=regular_grade,@egrade= exam_grade from inserted
    update SCTS
    set total_mark=0.3*@rgrade+0.7*@egrade
    from inserted
    where SCTS.studentid =inserted.studentid
    and SCTS.courseid=inserted.courseid
    and SCTS.teacherid =inserted.teacherid
    END
    END
      --測(cè)試觸發(fā)器
    update  Scts
    set regular_grade='100',exam_grade='100'
    where studentid='200520805403'and courseid='20224B0' and teacherid='080102'
    select *from scts
    where studentid='200520805403'and courseid='20224B0' and teacherid='080102'
      --2、②設(shè)計(jì)DML觸發(fā)器,使得當(dāng)某學(xué)生在一個(gè)學(xué)期中所選修的課程總學(xué)分超過20學(xué)分時(shí),自動(dòng)提示“你選修的總學(xué)分已達(dá)到最大值,不允許繼續(xù)選課!”的信息;
    Create trigger Tri_IN_LIMIT_SCTS
    on SCTS
    after insert --注意這里AFTER是插入之后的
    AS
    BEGIN
    BEGIN
    DECLARE @allcredit float;
    DECLARE @sid varchar(12);
    select @sid =inserted.studentid from inserted
    select  @allcredit=sum(credit)
    from courses
    where courseid in(
    select courseid
    from scts
    where studentid=@sid
    )
    if (@allcredit>20)
    begin
    Rollback Transaction
    print @allcredit
    print'你選修的總學(xué)分已達(dá)到最大值,不允許繼續(xù)選課!'
    end
    else
    print'選課成功'
    END
    END
     --測(cè)試觸發(fā)器
    select  sum(credit) '總分'
    from courses
    where courseid in(
    select courseid
    from scts
    where studentid='200520701201'
    )
    insert into Scts(courseid,studentid,teacherid)
    values ('50103Q0','200520701201','080102');
    select *from courses where courseid='10042B0'
      --3.設(shè)計(jì)DML觸發(fā)器限定:對(duì)于“專業(yè)”(COURSES.character,包括專業(yè)課、專業(yè)基礎(chǔ)、專業(yè)選修等)課程,只有該課程開課學(xué)院的學(xué)生才能選修,否則提示“不允許跨院選課!”的提示信息。
    Create trigger Tri_INSERT_SCTS
    on SCTS
    after insert
    AS
    BEGIN
    DECLARE @stype varchar(10);
    DECLARE @collegeid varchar(5);
    if exists(select * from courses AS C
    where C.courseid in(select courseid  from inserted ) and C.Character like '專業(yè)%')
    BEGIN
    select @collegeid=college from courses AS C
    where C.courseid in(select courseid  from inserted )
    if exists (select college from students AS S
    where S.studentid in(select studentid  from inserted )and S.college=@collegeid)
    PRINT '選專業(yè)課成功'
    else
    BEGIN
    Rollback Transaction
    PRINT '不允許跨院選課!'
    END
    END
    ELSE
    PRINT '選修公共選修課成功'
    END
      --選修本學(xué)院專業(yè)課
      insert into Scts(courseid,studentid,teacherid)
      values ('20224B0','200520805403','080102');
      --選修非本院專業(yè)課 終止
      insert into Scts(courseid,studentid,teacherid)
      values ('10019B5','200520805403','080102');
      --選修公共選修課
    insert into Scts(courseid,studentid,teacherid)
    values ('50095Q0','200520805403','080102');
    select *from students where college='08'
    select *from colleges where collegeid='08'
    select *from courses where courseid in (select courseid from courses where character not like '專業(yè)%')and college
    ='08'
    select *from scts where studentid='200520805403'
    delete from scts  where  courseid='20224B0' and  studentid='200520805403';
      --4、設(shè)計(jì)DML觸發(fā)器以實(shí)現(xiàn)對(duì)敏感數(shù)據(jù)的自動(dòng)審計(jì):當(dāng)用戶在SCTS表中插入新記錄或者更新SCTS表中的regular_grade和exam_grade屬性列時(shí),自動(dòng)在成績(jī)變化表GRADE_LOG(student, course, teacher, regular_grade, exam_grade, username, userdate)中增加一條相應(yīng)記錄,以記錄當(dāng)前用戶對(duì)學(xué)生成績(jī)的操作。(system_user)
    Create table GRADE_LOG(
    id int  identity(1,1) primary key,
    student varchar(20) not null ,
    course  varchar(50) not null,
    teacher varchar(20) not null,
    regular_grade float ,
    exam_grade float,
    username  varchar(20) not null,
    userdate datetime not null,
    operator varchar(10) not null
    )
    --select system_user  getdate()
    Create trigger  Tri_IN_U_SCTS
    on SCTS
    after INSERT,UPDATE
    AS
    BEGIN
    IF UPDATE(regular_grade)OR UPDATE(exam_grade)or (exists (select 1 from inserted) and not exists (select 1
    from deleted))
    BEGIN
    DECLARE @student varchar(20);
    DECLARE @course varchar(50);
    DECLARE @teacher varchar(20);
    DECLARE @rgrade float;
    DECLARE @egrade float;
    DECLARE @username  varchar(20);
    DECLARE @date datetime;
    DECLARE @type varchar(10);
    select @type='update';
    if exists (select 1 from inserted) and not exists (select 1 from deleted)
    select @type='insert';
    select @student=sname from students where studentid in(select studentid  from inserted )
    select @course =cname from courses where courseid in (select courseid from inserted)
    select @teacher =tname from teachers where teacherid in (select teacherid from inserted)
    select @rgrade=regular_grade,@egrade=exam_grade from inserted
    select @username=system_user,@date=getdate();
    insert into GRADE_LOG
    values(@student,@course,@teacher,@rgrade,@egrade,@username,@date,@type)
    END
    END
    select * from  GRADE_LOG;
      --更新成績(jī)
      update  Scts
      set regular_grade='100',exam_grade='20'
      where studentid='200520805403'and courseid='20224B0' and teacherid='080102'
      --只更新總成績(jī),不激活觸發(fā)器
      update  Scts
      set total_mark='100'
      where studentid='200520805403'and courseid='20224B0' and teacherid='080102'
      --5、DDL觸發(fā)器,禁止用戶在Teaching數(shù)據(jù)庫中的修改表和刪除表操作。
    CREATE TRIGGER TRI_Teaching_DDL
    ON database
    for alter_table,drop_table
    AS
    BEGIN
    print '不允許修改或刪除數(shù)據(jù)表!'
    Rollback Transaction
    END

    posted @ 2014-05-04 13:03 順其自然EVO 閱讀(169) | 評(píng)論 (0)編輯 收藏

    JAVA基礎(chǔ)—關(guān)于Runtime對(duì)象

    /*
    Runtime對(duì)象
    該類并沒有提供構(gòu)造函數(shù)。
    說明不可以new對(duì)象。那么會(huì)直接想到該類中的方法都是靜態(tài)的。
    發(fā)現(xiàn)該類中還有非靜態(tài)方法。
    說明該類肯定會(huì)提供了方法獲取本類對(duì)象。而且該方法是靜態(tài)的,并返回值類型是本類類型。
    由這個(gè)特點(diǎn)可以看出該類使用了單例設(shè)計(jì)模式完成。
    該方式是static Runtime getRuntime();
    */
    package com.fwj.reitheima;
    import java.io.IOException;
    public class RuntimeDemo {
    public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub
    //獲取Runtime類對(duì)象
    Runtime r=Runtime.getRuntime();
    //拿記事本軟件打開指定文件
    Process p = r.exec("notepad.exe SystemDemo.java");
    Thread.sleep(5000);
    p.destroy();
    }
    }

    posted @ 2014-05-04 13:02 順其自然EVO 閱讀(158) | 評(píng)論 (0)編輯 收藏

    Orcale 遠(yuǎn)程配置連接數(shù)據(jù)庫

     修改orcale里面的tnsnames.ora文件
    1# tnsnames.ora Network Configuration File: F:\oracle\product\10.2.0\db_2\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    ORCL =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =222222)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = orcl)
    )
    )
    EXTPROC_CONNECTION_DATA =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
    (SID = PLSExtProc)
    (PRESENTATION = RO)
    )
    )
      增加你要遠(yuǎn)程的地址:
    112 =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 2222222)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SERVICE_NAME = www)
    )
    )

    posted @ 2014-05-04 13:02 順其自然EVO 閱讀(162) | 評(píng)論 (0)編輯 收藏

    萬能寫入sql語句,并且防注入

    通過perpare()方法和檢查字段防sql注入.
    $pdo=new PDO('mysql:host=localhost;dbname=scms', 'root' );
    $_POST=array('title'=>23,'content'=>'kmm');
    $keys= array_keys($_POST);
    /**
    * $filetarr數(shù)組用于規(guī)定只可以寫入的字段
    */
    $filetarr=array('title','content');
    $filtre=true;
    foreach ($keys as $value){
    if(in_array($value, $filetarr,true)){
    }else{
    //var_dump($value);
    $filtre=false;
    break;
    }
    }
    if($filtre){
    $fields=implode(',', $keys);
    $fieldszwh=':'.implode(',:', $keys);
    $sql="insert into article({$fields}) values({$fieldszwh})";
    $pdostatement= $pdo->prepare($sql);
    $pdostatement->execute($_POST);
    var_dump($pdostatement->errorInfo());
    }else{
    echo '非法字段';
    }
      2.萬能條件語句,同樣通過字段限制防注入
    $pdo=new PDO('mysql:host=localhost;dbname=scms', 'root' );
    $_POST=array('title'=>23,'content'=>'km');
    $keys= array_keys($_POST);
    /**
    * $filetarr數(shù)組用于規(guī)定只可以寫入的字段
    */
    $filetarr=array('title','content');
    $filtre=true;
    $where='';
    /**
    *$wherearr數(shù)組用來根據(jù)字段指定查詢條件,例如大于,等于,like
    */
    $wherearr=array('title'=>'like','content'=>'>%');
    foreach ($keys as $value){
    if(in_array($value, $filetarr,true)){
    if($wherearr[$value]==='between'){
    if(count(explode(',', $_POST[$value]))===1){
    break;
    }
    $where.='and '.$value.' between '.":{$value}left".' and '.":{$value}right ";
    $_POST[$value]=explode(',', $_POST[$value]);
    $_POST[$value.'left']=$_POST[$value][0];
    $_POST[$value.'right']=$_POST[$value][1];
    unset($_POST[$value]);
    }else{
    $where.='and '.$value.' '.$wherearr[$value].' '.":{$value} ";
    }
    }else{
    //var_dump($value);
    $filtre=false;
    break;
    }
    }
    /**
    *
    *如果用or連接條件語句,截取前面兩個(gè)字符
    */
    $where=substr($where,3);
    if($filtre){
    $fields=implode(',', $keys);
    $fieldszwh=':'.implode(',:', $keys);
    $sql="select  * from article where {$where}";
    var_dump($sql);
    $pdostatement= $pdo->prepare($sql);
    $pdostatement->execute($_POST);
    $re=     $pdostatement->fetchAll();
    var_dump($pdostatement->errorInfo());
    var_dump($_POST);
    var_dump($re);
    }else{
    echo '非法字段';
    }

    posted @ 2014-05-04 13:01 順其自然EVO 閱讀(284) | 評(píng)論 (0)編輯 收藏

    敏捷開發(fā)離不開自動(dòng)化單元測(cè)試

     概述:敏捷項(xiàng)目預(yù)想測(cè)試計(jì)劃,測(cè)試創(chuàng)建和測(cè)試執(zhí)行在項(xiàng)目生命周期中貫穿始終。因此單元測(cè)試的需要,尤其是自動(dòng)化單元測(cè)試不可忽略,而且應(yīng)當(dāng)作為整個(gè)團(tuán)隊(duì)的關(guān)鍵責(zé)任-而不僅僅是軟件開發(fā)人員的責(zé)任。敏捷方法是建立在短期、可迭代并且可增長(zhǎng)發(fā)布版本,可以對(duì)變更有持續(xù)反饋和靈活應(yīng)對(duì)的基礎(chǔ)上的管理軟件開發(fā)的方法。起源于快速演變的商業(yè)環(huán)境,由于需要產(chǎn)品更快地完成改善和修改,敏捷方法推動(dòng)了能夠貫穿適用于整個(gè)應(yīng)用程序管理流程的組織結(jié)構(gòu)的速度質(zhì)量,應(yīng)對(duì)能力和適應(yīng)性。這篇文章闡述了為什么敏捷開發(fā)沒有單元測(cè)試不能有效地實(shí)施-尤其是沒有自動(dòng)化單元測(cè)試的時(shí)候。
      代碼質(zhì)量的重要性
      開發(fā)者早在數(shù)年前就知道越是到項(xiàng)目后期發(fā)現(xiàn)缺陷,修補(bǔ)缺陷的代價(jià)就越高。當(dāng)開發(fā)人員發(fā)現(xiàn)一個(gè)缺陷的時(shí)候,有時(shí)候需要幾分鐘來解決。如果在測(cè)試中將缺陷漏掉,然后被顧客發(fā)現(xiàn),圖1說明彌補(bǔ)代價(jià)會(huì)以幾何指數(shù)增長(zhǎng)。
         ......
       查看全文請(qǐng)點(diǎn)擊下載:http://www.51testing.com/html/15/n-860515.html
      客戶知道對(duì)每個(gè)發(fā)現(xiàn)的缺陷,他將失去寶貴的業(yè)務(wù)時(shí)間。開發(fā)者知道每個(gè)返回的缺陷意味著要花大量時(shí)間修復(fù)而不是鉆研新的功能特性。
      敏捷方法做能工作的軟件,并將其與初期反饋結(jié)合到一起。例如,初期系統(tǒng)發(fā)布可以獲取用戶對(duì)軟件運(yùn)行情況的反饋。為了給開發(fā)者信心,他們寫的代碼可以工作,單元測(cè)試提供了最快的質(zhì)量反饋。
      缺陷發(fā)現(xiàn)越早,修復(fù)他們的代價(jià)就越低。因?yàn)槊艚莘椒ㄖС指哔|(zhì)量代碼,團(tuán)隊(duì)成員就應(yīng)當(dāng)多做單元測(cè)試。類似地,自動(dòng)化測(cè)試讓開發(fā)者能夠在版本發(fā)布前重復(fù)多次地得到代碼質(zhì)量的反饋。
      單元測(cè)試是什么?
      單元測(cè)試是一種方法,這種方法將獨(dú)立的軟件單元,關(guān)聯(lián)的數(shù)據(jù)和使用步驟進(jìn)行測(cè)試,決定是否運(yùn)行正確。單元通常是一小片代碼,舉個(gè)例子,一個(gè)單獨(dú)的函數(shù)。單元測(cè)試就是一個(gè)簡(jiǎn)短的函數(shù),測(cè)試該單元的行為,給出一個(gè)成功/失敗的結(jié)果。這個(gè)通過用一個(gè)已知的單獨(dú)的正確值來測(cè)試函數(shù)完成。單元測(cè)試經(jīng)常使用模擬對(duì)象來預(yù)測(cè)式地模擬依賴行為。
          ......
       查看全文請(qǐng)點(diǎn)擊下載:http://www.51testing.com/html/15/n-860515.html
      本文收錄于《51測(cè)試天地》電子雜志第三十三期。
      版權(quán)聲明:本文出自51Testing軟件測(cè)試網(wǎng)電子雜志——《51測(cè)試天地》第三十三期。51Testing軟件測(cè)試網(wǎng)及相關(guān)內(nèi)容提供者擁有51testing.com內(nèi)容的全部版權(quán),未經(jīng)明確的書面許可,任何人或單位不得對(duì)本網(wǎng)站內(nèi)容復(fù)制、轉(zhuǎn)載或進(jìn)行鏡像,否則將追究法律責(zé)任。

    posted @ 2014-05-04 13:00 順其自然EVO 閱讀(206) | 評(píng)論 (0)編輯 收藏

    QTP處理各類鼠標(biāo)事件fireEvent

    在做web測(cè)試時(shí),頁面上的HTML標(biāo)簽會(huì)包含各類事件:?jiǎn)螕簦╫nclick)、雙擊(onDblClick)、光標(biāo)聚集(OnBlur)、onchange、onfocus、onmousedown、onmouseup、onmouseover、onmouseout、onsubmit、onreset、onpropertychange等。
      在用QTP錄制時(shí),有可能會(huì)有一些事件錄制不到。這時(shí)候你可以進(jìn)行一些設(shè)置,QTP/tools/Web Event Recording Configuration/custom settings/event/add就可以添加你想要錄制下來的事件啦。
      當(dāng)然,這篇文章的主題并不是上述這些。
      先描述一下我的問題,項(xiàng)目中碰到一個(gè)列表控件,是采用ligerUI做的,雙擊列表中的一行,會(huì)讀到這一行的內(nèi)容,然后把數(shù)據(jù)賦給頁面的其他標(biāo)簽,還包括一些隱藏域。
      首先,我在錄制的時(shí)候發(fā)現(xiàn)雙擊事件錄不到(上述Web Event Recording Configuration已經(jīng)設(shè)置好),于是采用低級(jí)別錄制,雙擊事件順利錄制到。
      接著,在回放的時(shí)候,發(fā)現(xiàn)雙擊事件失效,并沒有如預(yù)期中的,我雙擊一個(gè)項(xiàng),然后頁面別的元素獲取到他的值。
      我的第一個(gè)操作是,因?yàn)橹勒麄€(gè)頁面實(shí)現(xiàn)的邏輯是,獲取到每一項(xiàng)的唯一標(biāo)志符后,把這個(gè)值賦給頁面的一個(gè)隱藏域,然后后續(xù)的工作就都可以順利進(jìn)行了。因?yàn)檫@里涉及到隱藏域的問題,我們知道QTP采用的是對(duì)象識(shí)別的模式,意識(shí)就是,他只能識(shí)別他看的到的,在表面上顯示出來的對(duì)象。這里采用DOM對(duì)象的方法,DOM是直接從源代碼(HTML頁面)獲取對(duì)象。所以頁面上的各種隱藏域,各種可以通過標(biāo)簽、ID、屬性等獲取到的對(duì)象就可以很順利的在QTP中讀取到。DOM對(duì)象也很簡(jiǎn)單,只需要在你想要識(shí)別的對(duì)象的父對(duì)象后面加上“ .Object ”,然后就可以通過getElementById("id")、document.getElementById("id")、getElementsByName("html tag")等各種js獲取對(duì)象的方法來對(duì)頁面為所欲為了。
      比如這里,我的實(shí)現(xiàn)代碼就變成了:
    1 set obj =  Browser("Browser").Page("Page").Object.getElementById("verifyID")
    2 obj.value = "0101002699"
      這個(gè)只是很膚淺的解決了問題,但頁面上該顯示正確值的地方的值還是空的。那就是說還得弄一個(gè)能真正解決該問題的方法。
      現(xiàn)在我們就引入了fireevent方法。
      fireevent是JS中的一個(gè)方法,以下摘自MSDN的解釋
      fireevent執(zhí)行的效果就是“等同于”在目標(biāo)元素上進(jìn)行了相關(guān)操作。可以模擬各種包括單擊在內(nèi)的,文章一開頭就列出來的各種操作。
      那我上面遇到的問題的解決辦法就是:
    Set list =  Browser("Browser").Page("Page").WebElement("list").Object
    list.document.getElementById("maingrid4|2|r1001").fireevent("ondblclick")
      這樣,我想要的雙擊事件的回放問題,就順利解決啦。

    posted @ 2014-05-04 13:00 順其自然EVO 閱讀(2525) | 評(píng)論 (0)編輯 收藏

    LoadRunner手工關(guān)聯(lián)

      web_reg_save_param取服務(wù)器返回的值,關(guān)聯(lián)服務(wù)器需要校驗(yàn)的值,不一定第動(dòng)態(tài)的,有可能不變,根據(jù)服務(wù)器的算法決定
      關(guān)聯(lián)需要注意的項(xiàng):找到服務(wù)器的動(dòng)態(tài)的值;找到關(guān)聯(lián)值得左右邊界;關(guān)聯(lián)所放置的位置。
      有時(shí)候需要使用的數(shù)據(jù)是服務(wù)器動(dòng)態(tài)產(chǎn)生的,但是錄制的時(shí)候是固定的,此時(shí)也也可以用關(guān)聯(lián)來處理。比如新增用例時(shí)TCID是服務(wù)器動(dòng)態(tài)產(chǎn)生的,此時(shí)需要使用關(guān)聯(lián)來獲取這個(gè)TCID的值。具體步驟如下:
      1、找到需要關(guān)聯(lián)的地方,就是會(huì)使服務(wù)器產(chǎn)生動(dòng)態(tài)數(shù)據(jù)的這個(gè)提交。設(shè)置手工關(guān)聯(lián)必須在這個(gè)提交之前,這個(gè)位置必須設(shè)置正確,否則無法獲取關(guān)聯(lián)。比如下面的代碼:
      web_set_max_html_param_len ("9999"); --函數(shù)可以自定義關(guān)聯(lián)返回值存放的參數(shù)的最大長(zhǎng)度,默認(rèn)是1024,如果不夠需要增加
      web_reg_save_param("tcid","LB=input name=\"yl_tcid\" type=\"text\" value=\"","RB=\"",LAST);  --設(shè)置關(guān)聯(lián),參數(shù)一為變量名,參數(shù)二為左邊界,參數(shù)三為右邊界
      web_submit_data("TB_CeShiYLGL.aspx_2",                  --以下為一個(gè)客戶端提交函數(shù),上面的關(guān)聯(lián)函數(shù)就是為了獲取該提交后,服務(wù)器反饋的值。
    "Action=http://192.168.3.99/tbasetest/CeShiYL/TB_CeShiYLGL.aspx?bz=1&GONGNENGID=MTE*",
    "Method=POST",
    "RecContentType=text/html",
    "Referer=http://192.168.3.99/tbasetest/CeShiYL/TB_CeShiYLGL.aspx?bz=1&GONGNENGID=MTE*",
    "Snapshot=t19.inf",
    "Mode=HTML",
    ITEMDATA,
    "Name=__EVENTTARGET", "Value=LB_Add", ENDITEM,
    "Name=__EVENTARGUMENT", "Value=", ENDITEM,
    "Name=__LASTFOCUS", "Value=", ENDITEM,
    "Name=__VIEWSTATE", "Value=/", ENDITEM,
    "Name=hdnYongLiGL", "Value=", ENDITEM,
    "Name=hdnDelRows", "Value=", ENDITEM,
    "Name=yl_tcid", "Value=1725", ENDITEM,
    "Name=yl_xm", "Value=1", ENDITEM,
    "Name=yl_xt", "Value=BAGL-1", ENDITEM,
    "Name=yxj", "Value=yl_gj", ENDITEM,
    "Name=yl_lyxq", "Value=", ENDITEM,
    "Name=yl_qzyl", "Value=", ENDITEM,
    "Name=yl_cjms", "Value=", ENDITEM,
    "Name=YuQiJG", "Value=%3CDisplayLayout%3E%3CStateChanges%3E%3C/StateChanges%3E%3C/DisplayLayout%3E", ENDITEM,
    "Name=yl_yyjgid", "Value=", ENDITEM,
    "Name=yl_yyjgidOrign", "Value=", ENDITEM,
    "Name=ylkhid", "Value=", ENDITEM,
    "Name=QuXiaoBZ", "Value=1", ENDITEM,
    "Name=_IG_CSS_LINKS_", "Value=", ENDITEM,
    LAST);
    lr_output_message("Value TCID = %s", lr_eval_string("{tcid}"));    --輸出關(guān)聯(lián)的變量值
      此時(shí)肯定會(huì)有一個(gè)疑問,我們?nèi)绾潍@取左右邊界的值。其實(shí)也比較簡(jiǎn)單,常見的方法見下圖
      注意點(diǎn):
      1、設(shè)置左右邊界時(shí),遇到的引號(hào)必須加轉(zhuǎn)義符號(hào)
      2、自定義關(guān)聯(lián)返回值存放的參數(shù)的最大長(zhǎng)度
      3、注意關(guān)聯(lián)函數(shù)的位置

    posted @ 2014-05-04 13:00 順其自然EVO 閱讀(181) | 評(píng)論 (0)編輯 收藏

    UI測(cè)試常用技巧

      如何在當(dāng)前界面中查找第一個(gè)ListView中的帶有文本屬性為Apps的子控件。
    UiObjectappItem=newUiObject(newUiSelector()
    .className("android.widget.ListView").instance(1)
    .childSelector(newUiSelector().text("Apps")));
      如何查找當(dāng)前顯示界面中的取消按鈕和確認(rèn)按鈕:
      UiObjectcancelButton=newUiObject(newUiSelector().text("Cancel"));
      UiObjectokButton=newUiObject(newUiSelector().text("OK"));
      查找到的UiObject實(shí)例可以在其他測(cè)試代碼中重用。需要注意的是:每次使用UiObject做操作的時(shí)候uiautomator都會(huì)在當(dāng)前屏幕重新查找該控件。
      如下代碼uiautomator工具在當(dāng)前界面查找文本內(nèi)容為“OK”的控件。如果存在并且可用則模擬用戶點(diǎn)擊該控件。
    if(okButton.exists()&&okButton.isEnabled())
    {
    okButton.click();
    }
      還可以限制僅僅查找特定類型的控件。例如如下代碼只查找文本為“Cancel”和“OK”的android.widget.Button類型控件。
    UiObjectcancelButton=newUiObject(newUiSelector().text("Cancel")
    .className("android.widget.Button"));
    UiObjectokButton=newUiObject(newUiSelector().text("OK")
    .className("android.widget.Button"));
    UiCollection
      代表控件的集合。獲取UiCollection的方式和UiObject一樣,通過UiSelector查找。UiCollection對(duì)應(yīng)Android系統(tǒng)中的ViewGroup以及子控件。
      如下代碼演示如何通過UiSelector來獲取包含視頻集合的UiCollection。
      UiCollectionvideos=newUiCollection(newUiSelector()
      .className("android.widget.FrameLayout"));
      如果每個(gè)視頻是放到LinearLayout中的,則可以通過如下方式獲取視頻的數(shù)目:
      intcount=videos.getChildCount(newUiSelector()
      .className("android.widget.LinearLayout"));
      如果需要查找標(biāo)簽為“CuteBabyLaughing”的視頻,并點(diǎn)擊。則可以通過如下方式:
    UiObjectvideo=videos.getChildByText(newUiSelector()
    .className("android.widget.LinearLayout"),"CuteBabyLaughing");
    video.click();
      同樣還可以模擬其他用戶操作。例如,模擬選擇視頻的操作如下:
    UiObjectcheckBox=video.getChild(newUiSelector()
    .className("android.widget.Checkbox"));
    if(!checkBox.isSelected())checkbox.click();
    UiScrollable
      代表可滾動(dòng)的控件。可以用UiScrollable來模擬水平或者垂直滾動(dòng)的UI元素。如果需要操作的元素在屏幕外需要滾動(dòng)屏幕才能看到的情況下需要使用UiScrollable。
      例如,下面的代碼顯示了如何模擬滾動(dòng)到“Settings”菜單并點(diǎn)擊“Abouttablet”菜單的操作。
    UiScrollablesettingsItem=newUiScrollable(newUiSelector()
    .className("android.widget.ListView"));
    UiObjectabout=settingsItem.getChildByText(newUiSelector()
    .className("android.widget.LinearLayout"),"Abouttablet");
    about.click()

    posted @ 2014-05-04 12:59 順其自然EVO 閱讀(405) | 評(píng)論 (0)編輯 收藏

    Android應(yīng)用測(cè)試總結(jié)

     Android應(yīng)用程序測(cè)試注意要點(diǎn):
      1、應(yīng)用程序功能是否都實(shí)現(xiàn)
      2、給用戶的提示信息是否簡(jiǎn)單、易于理解,且符合當(dāng)前事件
      3、交互性事件的影響:
      (1)硬件:USB插拔、電池沒電及插拔;
      (2)軟件:電話來電、短信、QQ,音樂盒等后臺(tái)運(yùn)行的軟件。
      4、網(wǎng)絡(luò)影響:wifi、2G/3G/4G
      5、非法操作對(duì)應(yīng)用程序的影響
      下面是針對(duì)容易忽視測(cè)試路徑的功能測(cè)試模塊的測(cè)試用例做一個(gè)小結(jié):
      一、登錄
      1、wifi對(duì)登錄的影響
      2、數(shù)字、字母、特殊字符、漢字在登錄輸入框中的響應(yīng)
      3、被刪除的用戶能否登錄成功
      4、被禁止的用戶能否登錄成功
      5、不存在的用戶能否登錄成功
      二、下載
      1、wifi正常,下載資源期間,賬號(hào)退出/切換的影響
      2、wifi正常,下載資源期間,暫停、取消的使用
      3、wifi正常,下載選擇的切換
      4、wifi正常,賬號(hào)A的資源下載選擇后臺(tái)下載,賬號(hào)B登錄共同下載相同的資源,是否發(fā)生異常
      5、wifi正常,后臺(tái)有資源正在下載(不同賬號(hào)或同一個(gè)賬號(hào)),使用“一鍵清理”是否能清除完全
      6、資源正在下載過程中,wifi斷開,下載給出的響應(yīng),連接wifi之后能否繼續(xù)下載當(dāng)前資源
      7、資源正在下載過程中,切換wifi賬號(hào),對(duì)下載的影響
      8、wifi正常,彈出下載對(duì)話框,斷開wifi,點(diǎn)擊下載,應(yīng)用給出的響應(yīng),以及連接wifi之后,是否能下載成功。
      9、wifi正常,下載隊(duì)列中的資源下載完成之后是否自動(dòng)繼續(xù)等待隊(duì)列中資源的下載
      10、下載數(shù)據(jù)能否查看,且內(nèi)容是否完整
      11、刪除本地緩存的下載文件,再次點(diǎn)擊下載,是否能下載成功
      12、手機(jī)內(nèi)存已滿時(shí),下載開始或中途是否有相應(yīng)的提示信息
      13、下載過程中沒電關(guān)機(jī)、USB的插拔,突然關(guān)機(jī)對(duì)下載的影響
      三、調(diào)查問卷
      1、問卷內(nèi)容的布局、內(nèi)容顯示是否符合要求
      2、手機(jī)HOME鍵、返回鍵、MENU鍵的響應(yīng)
      3、暫存、交卷多次點(diǎn)擊的響應(yīng)
      4、wifi對(duì)暫存和交卷的影響,緩存時(shí)間的長(zhǎng)短

    posted @ 2014-05-04 12:59 順其自然EVO 閱讀(197) | 評(píng)論 (0)編輯 收藏

    企業(yè)面試經(jīng)常問到的問題

     1、請(qǐng)你自我介紹一下自己好嗎?
      回答提示:一般人回答這個(gè)問題過于平常,只說姓名、年齡、愛好、工作經(jīng)驗(yàn),這些在簡(jiǎn)歷上都有。其實(shí),企業(yè)最希望知道的是求職者能否勝任工作,包括:最強(qiáng)的技能、最深入研究的知識(shí)領(lǐng)域、個(gè)性中最積極的部分、做過的最成功的事,主要的成就等,這些都可以和學(xué)習(xí)無關(guān),也可以和學(xué)習(xí)有關(guān),但要突出積極的個(gè)性和做事的能力,說得合情合理企業(yè)才會(huì)相信。企業(yè)很重視一個(gè)人的禮貌,求職者要尊重考官,在回答每個(gè)問題之后都說一句“謝謝”,企業(yè)喜歡有禮貌的求職者。
      2、你覺得你個(gè)性上最大的優(yōu)點(diǎn)是什么?
      回答提示:沉著冷靜、條理清楚、立場(chǎng)堅(jiān)定、頑強(qiáng)向上、樂于助人和關(guān)心他人、適應(yīng)能力和幽默感、樂觀和友愛。我在北大青鳥經(jīng)過一到兩年的培訓(xùn)及項(xiàng)目實(shí)戰(zhàn),加上實(shí)習(xí)工作,使我適合這份工作。
      3、說說你最大的缺點(diǎn)?
      回答提示:這個(gè)問題企業(yè)問的概率很大,通常不希望聽到直接回答的缺點(diǎn)是什么等,如果求職者說自己小心眼、愛忌妒人、非常懶、脾氣大、工作效率低,企業(yè)肯定不會(huì)錄用你。絕對(duì)不要自作聰明地回答“我最大的缺點(diǎn)是過于追求完美”,有的人以為這樣回答會(huì)顯得自己比較出色,但事實(shí)上,他已經(jīng)岌岌可危了。企業(yè)喜歡求職者從自己的優(yōu)點(diǎn)說起,中間加一些小缺點(diǎn),最后再把問題轉(zhuǎn)回到優(yōu)點(diǎn)上,突出優(yōu)點(diǎn)的部分,企業(yè)喜歡聰明的求職者。
      4、你對(duì)薪資的要求?
      回答提示:如果你對(duì)薪酬的要求太低,那顯然貶低自己的能力;如果你對(duì)薪酬的要求太高,那又會(huì)顯得你分量過重,公司受用不起。一些雇主通常都事先對(duì)求聘的職位定下開支預(yù)算,因而他們第一次提出的價(jià)錢往往是他們所能給予的最高價(jià)錢,他們問你只不過想證實(shí)一下這筆錢是否足以引起你對(duì)該工作的興趣。
      回答樣本一:我對(duì)工資沒有硬性要求,我相信貴公司在處理我的問題上會(huì)友善合理。我注重的是找對(duì)工作機(jī)會(huì),所以只要條件公平,我則不會(huì)計(jì)較太多。
      回答樣本二:我受過系統(tǒng)的軟件編程的訓(xùn)練,不需要進(jìn)行大量的培訓(xùn),而且我本人也對(duì)編程特別感興趣。因此,我希望公司能根據(jù)我的情況和市場(chǎng)標(biāo)準(zhǔn)的水平,給我合理的薪水。
      回答樣本三:如果你必須自己說出具體數(shù)目,請(qǐng)不要說一個(gè)寬泛的范圍,那樣你將只能得到最低限度的數(shù)字。最好給出一個(gè)具體的數(shù)字,這樣表明你已經(jīng)對(duì)當(dāng)今的人才市場(chǎng)作了調(diào)查,知道像自己這樣學(xué)歷的雇員有什么樣的價(jià)值。
      5、你對(duì)加班的看法?
      回答提示:實(shí)際上好多公司問這個(gè)問題,并不證明一定要加班,只是想測(cè)試你是否愿意為公司奉獻(xiàn)。
      回答樣本:如果工作需要我會(huì)義不容辭加班,我現(xiàn)在單身,沒有任何家庭負(fù)擔(dān),可以全身心的投入工作。但同時(shí)我也會(huì)提高工作效率,減少不必要的加班。
      6、如果通過這次面試我們錄用了你,但工作一段時(shí)間卻發(fā)現(xiàn)你根本不適合這個(gè)職位,你怎么辦?
      回答提示:一段時(shí)間發(fā)現(xiàn)工作不適合我,有兩種情況:①如果你確實(shí)熱愛這個(gè)職業(yè),那你就要不斷學(xué)習(xí),虛心向領(lǐng)導(dǎo)和同事學(xué)習(xí)業(yè)務(wù)知識(shí)和處事經(jīng)驗(yàn),了解這個(gè)職業(yè)的精神內(nèi)涵和職業(yè)要求,力爭(zhēng)減少差距;②你覺得這個(gè)職業(yè)可有可無,那還是趁早換個(gè)職業(yè),去發(fā)現(xiàn)適合你的,你熱愛的職業(yè),那樣你的發(fā)展前途也會(huì)大點(diǎn),對(duì)單位和個(gè)人都有好處。
      7、談?wù)勀銓?duì)跳槽的看法?
      回答提示:①正常的“跳槽”能促進(jìn)人才合理流動(dòng),應(yīng)該支持。②頻繁的跳槽對(duì)單位和個(gè)人雙方都不利,應(yīng)該反對(duì)。
      8、工作中難以和同事、上司相處,你該怎么辦?
      回答提示:①我會(huì)服從領(lǐng)導(dǎo)的指揮,配合同事的工作。②我會(huì)從自身找原因,仔細(xì)分析是不是自己工作做得不好讓領(lǐng)導(dǎo)不滿意,同事看不慣。還要看看是不是為人處世方面做得不好,如果是這樣的話我會(huì)努力改正。③如果我找不到原因,我會(huì)找機(jī)會(huì)跟他們溝通,請(qǐng)他們指出我的不足,有問題就及時(shí)改正。④作為優(yōu)秀的員工,應(yīng)該時(shí)刻以大局為重,即使在一段時(shí)間內(nèi),領(lǐng)導(dǎo)和同事對(duì)我不理解,我也會(huì)做好本職工作,虛心向他們學(xué)習(xí),我相信,他們會(huì)看見我在努力,總有一天會(huì)對(duì)我微笑的。
      9、你對(duì)于我們公司了解多少?
      回答提示:在去公司面試前上網(wǎng)查一下該公司主營(yíng)業(yè)務(wù)。如回答:貴公司有意改變策略,加強(qiáng)與國(guó)外大廠的OEM合作,自有品牌的部分則透過海外經(jīng)銷商。
      10、最能概括你自己的三個(gè)詞是什么?
      回答提示:我經(jīng)常用的三個(gè)詞是:適應(yīng)能力強(qiáng),有責(zé)任心和做事有始終,結(jié)合具體例子向主考官解釋。11、你的業(yè)余愛好是什么?
      回答提示:找一些富于團(tuán)體合作精神的,這里有一個(gè)真實(shí)的故事:有人被否決掉,因?yàn)樗膼酆檬巧詈撍V骺脊僬f:因?yàn)檫@是一項(xiàng)單人活動(dòng),我不敢肯定他能否適應(yīng)團(tuán)體工作。
      12、作為被面試者給我打一下分?
      回答提示:試著列出四個(gè)優(yōu)點(diǎn)和一個(gè)非常非常非常小的缺點(diǎn)(可以抱怨一下設(shè)施,沒有明確責(zé)任人的缺點(diǎn)是不會(huì)有人介意的)。
      13、你為什么要離開原來的公司?
      回答提示:①回答這個(gè)問題時(shí)一定要小心,就算在前一個(gè)工作受到再大的委屈,對(duì)公司有多少的怨言,都千萬不要表現(xiàn)出來,尤其要避免對(duì)公司本身主管的批評(píng),避免面試官的負(fù)面情緒及印象。建議此時(shí)最好的回答方式是將問題歸咎在自己身上,例如覺得工作沒有學(xué)習(xí)發(fā)展的空間,自己想在面試工作的相關(guān)產(chǎn)業(yè)中多加學(xué)習(xí),或是前一份工作與自己的生涯規(guī)劃不合等等,回答的答案最好是積極正面的。②我希望能獲得一份更好的工作,如果機(jī)會(huì)來臨,我會(huì)抓住。我覺得目前的工作,已經(jīng)達(dá)到頂峰,即沒有升遷機(jī)會(huì)。
      14、你欣賞哪種性格的人?
      回答提示:誠(chéng)實(shí)、不死板而且容易相處的人、有“實(shí)際行動(dòng)”的人。
      15、你通常如何對(duì)待別人的批評(píng)?
      回答提示:①沈默是金,不必說什么,否則情況更糟,不過我會(huì)接受建設(shè)性的批評(píng)。②我會(huì)等大家冷靜下來再討論。
      16、怎樣對(duì)待自己的失敗?
      回答提示:我們大家生來都不是十全十美的,我相信我有第二個(gè)機(jī)會(huì)改正我的錯(cuò)誤。
      17、你為什么愿意到我們公司來工作?
      回答提示:對(duì)于這個(gè)問題,你要格外小心,如果你已經(jīng)對(duì)該單位作了研究,你可以回答一些詳細(xì)的原因,像“公司本身的高技術(shù)開發(fā)環(huán)境很吸引我。”、“我同公司出生在同樣的時(shí)代,我希望能夠進(jìn)入一家與我共同成長(zhǎng)的公司。”、“你們公司一直都穩(wěn)定發(fā)展,在近幾年來在市場(chǎng)上很有競(jìng)爭(zhēng)力。”、“我認(rèn)為貴公司能夠給我提供一個(gè)與眾不同的發(fā)展道路。”這都顯示出你已經(jīng)做了一些調(diào)查,也說明你對(duì)自己的未來有了較為具體的遠(yuǎn)景規(guī)劃。
      18、對(duì)這項(xiàng)工作,你有哪些可預(yù)見的困難?
      回答提示:①不宜直接說出具體的困難,否則可能令對(duì)方懷疑應(yīng)聘者不行。②可以嘗試迂回戰(zhàn)術(shù),說出應(yīng)聘者對(duì)困難所持有的態(tài)度——工作中出現(xiàn)一些困難是正常的,也是難免的,但是只要有堅(jiān)忍不拔的毅力、良好的合作精神以及事前周密而充分的準(zhǔn)備,任何困難都是可以克服。
      19、如果錄用了你,你將怎樣開展工作?
      回答提示: ①如果應(yīng)聘者對(duì)于應(yīng)聘的職位缺乏足夠的了解,最好不要直接說出自己開展工作的具體辦法。②可以嘗試采用迂回戰(zhàn)術(shù)來回答,如“首先聽取領(lǐng)導(dǎo)的指示和要求,然后就有關(guān)情況進(jìn)行了解和熟悉,接下來制定一份近期的工作計(jì)劃并報(bào)領(lǐng)導(dǎo)批準(zhǔn),最后根據(jù)計(jì)劃開展工作。”。
      分析:這個(gè)問題的主要目的也是了解應(yīng)聘者的工作能力和計(jì)劃性、條理性,而且重點(diǎn)想要知道細(xì)節(jié)。如果向思路中所講的迂回戰(zhàn)術(shù),面試官會(huì)認(rèn)為回避問題,如果引導(dǎo)了幾次仍然是回避的話,此人絕對(duì)不會(huì)錄用了。
      20、你希望與什么樣的上級(jí)共事?
      回答提示:①通過應(yīng)聘者對(duì)上級(jí)的“希望”可以判斷出應(yīng)聘者對(duì)自我要求的意識(shí),這既上一個(gè)陷阱,又是一次機(jī)會(huì)。②最好回避對(duì)上級(jí)具體的希望,多談對(duì)自己的要求。③如“做為剛步入社會(huì)的新人,我應(yīng)該多要求自己盡快熟悉環(huán)境、適應(yīng)環(huán)境,而不應(yīng)該對(duì)環(huán)境提出什么要求,只要能發(fā)揮我的專長(zhǎng)就可以了。
      分析:這個(gè)問題比較好的回答是,希望我的上級(jí)能夠在工作中對(duì)我多指導(dǎo),對(duì)我工作中的錯(cuò)誤能夠立即指出。總之,從上級(jí)指導(dǎo)這個(gè)方面談,不會(huì)有大的紕漏。
      21、與上級(jí)意見不一時(shí),你將怎么辦?
      回答提示:①一般可以這樣回答“我會(huì)給上級(jí)以必要的解釋和提醒,在這種情況下,我會(huì)服從上級(jí)的意見。”②如果面試你的是總經(jīng)理,而你所應(yīng)聘的職位另有一位經(jīng)理,且這位經(jīng)理當(dāng)時(shí)不在場(chǎng),可以這樣回答:“對(duì)于非原則性問題,我會(huì)服從上級(jí)的意見,對(duì)于涉及公司利益的重大問題,我希望能向更高層領(lǐng)導(dǎo)反映。”
      分析:這個(gè)問題的標(biāo)準(zhǔn)答案是思路①,如果用②的回答,必死無疑。你沒有摸清楚改公司的內(nèi)部情況,先想打小報(bào)告,這樣的人沒有人敢要。
      22、為什么選擇我們公司?
      回答提示:曾經(jīng)在報(bào)章雜志看過關(guān)于貴公司的報(bào)道,與自己所追求的理念有志一同。而貴公司在業(yè)界的成績(jī)也是有目共睹的,而且對(duì)員工的教育訓(xùn)練、升遷等也都很有制度。
      分析:去面試前先做功課,了解一下該公司的背景,讓對(duì)方覺得你真的很有心想得到這份工作,而不只是探探路。
      23、談?wù)勅绾芜m應(yīng)辦公室工作的新環(huán)境?
      回答提示①辦公室里每個(gè)人有各自的崗位與職責(zé),不得擅離崗位。②根據(jù)領(lǐng)導(dǎo)指示和工作安排,制定工作計(jì)劃,提前預(yù)備,并按計(jì)劃完成。③多請(qǐng)示并及時(shí)匯報(bào),遇到不明白的要虛心請(qǐng)教。④抓間隙時(shí)間,多學(xué)習(xí),努力提高自己的政治素質(zhì)和業(yè)務(wù)水平。
      24、除了本公司外,還應(yīng)聘了哪些公司?
      回答提示:很奇怪,這是相當(dāng)多公司會(huì)問的問題,其用意是要概略知道應(yīng)徵者的求職志向,所以這并非絕對(duì)是負(fù)面答案,就算不便說出公司名稱,也應(yīng)回答“銷售同種產(chǎn)品的公司”,如果應(yīng)聘的其他公司是不同業(yè)界,容易讓人產(chǎn)生無法信任的感覺。
      25、你還有什么問題要問嗎?
      回答提示:企業(yè)的這個(gè)問題看上去可有可無,其實(shí)很關(guān)鍵,企業(yè)不喜歡說“沒問題”的人,因?yàn)槠浜茏⒅貑T工的個(gè)性和創(chuàng)新能力。企業(yè)不喜歡求職者問個(gè)人福利之類的問題,如果有人這樣問:貴公司對(duì)新入公司的員工有沒有什么培訓(xùn)項(xiàng)目,我可以參加嗎?或者說貴公司的晉升機(jī)制是什么樣的?企業(yè)將很歡迎,因?yàn)轶w現(xiàn)出你對(duì)學(xué)習(xí)的熱情和對(duì)公司的忠誠(chéng)度以及你的上進(jìn)心。
      26、如果你被錄用,何時(shí)可以到職?
      回答提示:大多數(shù)企業(yè)會(huì)關(guān)心就職時(shí)間,最好是回答“如果被錄用的話,到職日可按公司規(guī)定上班”,但如果還未辭去上一個(gè)工作、上班時(shí)間又太近,似乎有些強(qiáng)人所難,因?yàn)榻唤又辽僖粋€(gè)月的時(shí)間,應(yīng)進(jìn)一步說明原因,錄取公司應(yīng)該會(huì)通融的。

    posted @ 2014-05-04 12:58 順其自然EVO 閱讀(215) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共394頁: First 上一頁 117 118 119 120 121 122 123 124 125 下一頁 Last 
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 青青草原亚洲视频| 国产AV无码专区亚洲AV毛网站| 精品亚洲一区二区| 亚洲国产成AV人天堂无码| 国产亚洲日韩在线a不卡| 无码日韩精品一区二区免费暖暖 | 亚洲毛片免费观看| 国产成人高清亚洲一区久久| 久久狠狠躁免费观看| 日本久久久免费高清| 亚洲电影一区二区| 粉色视频免费入口| www视频在线观看免费| 亚洲日本中文字幕一区二区三区| 亚洲视频在线不卡| 久久久精品视频免费观看 | 狼友av永久网站免费观看| 亚洲AV成人精品网站在线播放| 亚洲AV无码国产精品永久一区| 99在线免费观看视频| 亚洲av午夜精品一区二区三区| 亚洲人成影院在线高清| 中文字幕不卡高清免费| 国产又黄又爽又刺激的免费网址 | 久久精品国产亚洲av高清漫画 | 性xxxxx免费视频播放| 伊人婷婷综合缴情亚洲五月| 亚洲av中文无码字幕色不卡| 5555在线播放免费播放| 国产精品亚洲一区二区三区在线| 亚洲av日韩aⅴ无码色老头| 1000部拍拍拍18勿入免费凤凰福利| 亚洲欧洲成人精品香蕉网| 韩国亚洲伊人久久综合影院| 永久免费av无码不卡在线观看| 国产亚洲综合久久系列| 美女被艹免费视频| 韩国日本好看电影免费看| 亚洲人成毛片线播放| 最近免费mv在线电影| 国产亚洲精品va在线|